Помогите с Mod Rewrite исключить скрипт

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем sinij, 31 авг 2009.

Статус темы:
Закрыта.
  1. sinij

    sinij Создатель

    Регистр.:
    26 дек 2007
    Сообщения:
    28
    Симпатии:
    8
    Помогите разобраться в следущей проблеме.
    На сайте используется динамическая адресация страниц, кроме двух случаев.
    1 случай если сприпт scrip1.php?h="чего то там"
    то должно быть domen.com/script1-"чего то там"
    2 случай если скрипт script2.php?n="чего то там"
    то должно быть domen.com/"чего то там"
    как нужно правильно записать RewriteCond?
    Пишу так ничего не получается.
    Код:
    RewriteEngine on
    Options +FollowSymlinks
    RewriteBase /
    RewriteRule ^script1\-([0-9]+)/ /script1.php?h=$1
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !^script1.php
    RewriteRule ^(.*)/ /script2.php?n=$1 [L]
     
  2. juggernaut13

    juggernaut13 Постоялец

    Регистр.:
    23 авг 2009
    Сообщения:
    59
    Симпатии:
    16
    Код:
    RewriteEngine on
    Options +FollowSymlinks
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^script1\-([0-9]+)/ /script1.php?h=$1 [L]
    RRewriteRule ^(.*)/ /script2.php?n=$1 [L]
    
    может так лучше:
    Код:
    RewriteEngine on
    Options +FollowSymlinks
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^script1\-([0-9]+)$ script1.php?h=$1 [L]
    RRewriteRule ^(.*)$ script2.php?n=$1 [L]
    
     
  3. sinij

    sinij Создатель

    Регистр.:
    26 дек 2007
    Сообщения:
    28
    Симпатии:
    8
    не получается
    сервер кричит Internal Server Error
    если сделать так
    если заремить последнюю строку тогда работает, но не работет преобразование
    и если написать так
    то все работет. Как все таки сделать преобразование адреса для этих двух скриптов?
     
  4. andrnag

    andrnag

    Регистр.:
    26 мар 2008
    Сообщения:
    350
    Симпатии:
    125
    PHP:
    Options +FollowSymlinks
    RewriteEngine on
    RewriteBase 
    /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond 
    %{REQUEST_FILENAME} !-d
    RewriteRule 
    ^script1-([0-9]+)$ script1.php?h=$[L]
    RewriteCond %{REQUEST_URI} !^script1.*
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond 
    %{REQUEST_FILENAME} !-d
    RewriteRule 
    ^(.*)$ script2.php?n=$[L]
    Как нибудь так. Беда только в том, что для ссылок на script2 нет отличительного признака. Т.е. все что запрошено, безусловно перебрасывается на script2. Так как я написал, это ничего страшного. Но если у тебя есть еще перенаправления, то нужно больше данных, чтобы правильно написать — выкладывай под хайд.
     
    sinij нравится это.
  5. sinij

    sinij Создатель

    Регистр.:
    26 дек 2007
    Сообщения:
    28
    Симпатии:
    8
    Спасибо самое оно. Немного с закрывающими слешами повозился правда.
     
Статус темы:
Закрыта.