Помогите с htacces

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем Smile, 29 сен 2013.

  1. Smile

    Smile Нарушитель

    Регистр.:
    12 ноя 2006
    Сообщения:
    157
    Симпатии:
    11
    Добрый день,

    нужна помощь, так как самому сделать не получается да и ничего не лезет в голову...

    в общем есть страница....

    testpage.html

    нужно сделать редирект для всех страниц если после .html есть ?asda1254 кроме ?p=1-2-3-4

    тоесть...

    если :

    testpage.html?p=1
    testpage.html?p=2
    testpage.html?p=3 итд

    то редирект не происходит, если :

    testpage.html?asda1254
    testpage.html?assadasf
    testpage.html?asdfsa4

    происходит редирект...

    как сделать редирект я разобрался...

    RewriteCond %{QUERY_STRING} !^$
    RewriteRule ^([0-9]+-.+\.html)$ redirect.php [L]

    а вот добавить исключение для страниц ( ?p=1 , ?p=2 , ?p=3 итд ) не получается...

    в общем помогите написать правильное правило... Спасибо.
     
  2. yurets86

    yurets86 Постоялец

    Заблокирован
    Регистр.:
    25 сен 2011
    Сообщения:
    136
    Симпатии:
    32
    пропробуйте так
    Код:
    RewriteCond %{REQUEST_URI} !-F
    RewriteRule (.*).html index.php?p=1
     
  3. esche

    esche

    Регистр.:
    9 авг 2009
    Сообщения:
    360
    Симпатии:
    243
    Код:
    RewriteCond %{QUERY_STRING} !^p=
    RewriteRule ^([0-9]+-.+\.html)$ redirect.php [L]
    Если, конечно, вторая строчка (из Вашего редиректа) отрабатывает как надо, т.к. для testpage она работать не должна.
     
  4. UJy

    UJy

    Регистр.:
    23 авг 2011
    Сообщения:
    320
    Симпатии:
    116
    Если нужно применить только к tesstpage.php, то:
    Код:
    RewriteCond %{REQUEST_URI} /testpage\.html [NC]
    RewriteCond %{QUERY_STRING} !^p=(.*)
    RewriteRule (.*) redirect.php? [R=301,L]