За последние 24 часа нас посетили 16590 программистов и 1679 роботов. Сейчас ищут 852 программиста ...

Mod_rewrite: если в урле 3 "/", тогда открыть page

Тема в разделе "PHP для новичков", создана пользователем programer, 21 окт 2009.

  1. programer

    programer Активный пользователь

    С нами с:
    22 авг 2008
    Сообщения:
    58
    Симпатии:
    0
    Нужно, чтобы если в $_SERVER['REQUEST_URI'] директорий было 3, открывалась page3.php; если 2, то page2.php; 1 - page1.php

    Так не получается, потому что срабатывает лишь последнее правило:
    PHP:
    1. RewriteEngine on
    2. RewriteRule ^(.*)/(.*)/(.*)/$ page3.php
    3. RewriteRule ^(.*)/(.*)/$ page2.php
    4. RewriteRule ^(.*)/$ page1.php
     
  2. eduha

    eduha Активный пользователь

    С нами с:
    8 ноя 2006
    Сообщения:
    278
    Симпатии:
    0
    Адрес:
    Караганда
    либо поменяйте порядок правил, либо после каждого допишите [L]
     
  3. programer

    programer Активный пользователь

    С нами с:
    22 авг 2008
    Сообщения:
    58
    Симпатии:
    0
    eduha
    Не помогло :(
     
  4. eduha

    eduha Активный пользователь

    С нами с:
    8 ноя 2006
    Сообщения:
    278
    Симпатии:
    0
    Адрес:
    Караганда
    programer
    Только что у себя проверил - работает.

    Код (Text):
    1. RewriteRule ^(.*)/$ page1.php
    2. RewriteRule ^(.*)/(.*)/$ page2.php
    3. RewriteRule ^(.*)/(.*)/(.*)/$ page3.php
    и это:

    Код (Text):
    1. RewriteRule ^(.*)/(.*)/(.*)/$ page3.php [L]
    2. RewriteRule ^(.*)/(.*)/$ page2.php [L]
    3. RewriteRule ^(.*)/$ page1.php [L]
    еще можно во всех регулярках точки заменить на [^/]
     
  5. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    и все же лучше
    ^[^/]+/[^/]+/[^/]+/$
     
  6. programer

    programer Активный пользователь

    С нами с:
    22 авг 2008
    Сообщения:
    58
    Симпатии:
    0
    - по-прежнему не работает в любом порядке.

    Работает!!! Спасибо!