Правильное написание правила в .htaccess

Статус
В этой теме нельзя размещать новые ответы.

goldyman

Мастер
Регистрация
6 Мар 2008
Сообщения
177
Реакции
30
Уже несколько часов мучаюсь с корректным написанием правила для редиректа в Wordpress и никак не выходит, то не работает, то 500 ошибка. Само правило выглядит так:

RewriteRule ^?p=29$ Для просмотра ссылки Войди или Зарегистрируйся [R=301,L]

Данное правило дает 500 ошибку, пробовал ставить обратные слэши в первом условии, убирать другие правила, прописывать правило сразу после RewriteEngine On и RewriteBase /, пользовался поиском, но так и не удалось выявить ошибку. Когда прописываю что-то типа:

RewriteRule ^page/$ Для просмотра ссылки Войди или Зарегистрируйся [R=301,L]

все работает на ура, отсюда пришел к выводу, что дело в первом условии ?p=29. Кто подскажет, где я туплю?
 
Кто подскажет, где я туплю?
Символ ? означает что под маску подходит 0 или 1 символ. Если его экранировать то толку тоже будет ноль т.к. это баг апача. Есть выход - проверять %{QUERY_STRING}:
Код:
RewriteCond %{QUERY_STRING} ^p=29$
RewriteRule .* http://site.com/category/stranica/ [R=301,L]
 
Спасибо. Просто нужно отредиректить более 150 страниц и необходимо такую конструкцию для каждого адреса прописывать? Я кстати, еще пробовал варианты redirect 301, Redirect permanent и пр, также глюк выходит.
 
Я кстати, еще пробовал варианты redirect 301, Redirect permanent и пр, также глюк выходит.
Потому что это баг апача, я где-то в ветке ссылку кидал на офф. источник.
Спасибо. Просто нужно отредиректить более 150 страниц и необходимо такую конструкцию для каждого адреса прописывать?
И да, и нет, нужно найти что-то общее, возможно удастся написать правило, которое зацепить хоть бОльшую часть адресов.
 
Редирект, что вы привели дает окончание странице ?p=29, т. е. получается так:

Для просмотра ссылки Войди или Зарегистрируйся

Можно как-то избавиться от этого окончания?

И да, и нет, нужно найти что-то общее, возможно удастся написать правило, которое зацепить хоть бОльшую часть адресов.

Вряд ли, скорее всего придется для каждой страницы прописывать, общего только знак ?. :)
 
Не думал, что будет сохранятся Query String.
Код:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^p=29$
RewriteRule (.*) /category/stranica/? [R=301,L]
 
index.php?cstart=25&do=year&year=2007

Это перемен. скрипта, где 25 это номер страницы, а 2007 это год
Как правильно составить ЧПУ, помогите пожалуйста.
Делаю так
RewriteRule ^page/(.*)/(.*)/(.*)(/?)+$ index.php?cstart=$1&do=year&year=$2 [L]

Не хотит работать вот так. В ЧПУ я не силен
 
penguen
Код:
RewriteEngine on
RewriteRule ^page/(.*)/(.*)/$ /index.php?cstart=$1&do=year&year=$2 [L]
 
добрый день.
изломал голову, всякое попробовал - не работает.
подскажите как сделать, чтобы при нажатии на такую ссылку:

Для просмотра ссылки Войди или Зарегистрируйся

открывался такой адрес Для просмотра ссылки Войди или Зарегистрируйся

?
 
Код:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^route=common/home$ [NC]
RewriteRule ^index.php$ /? [L,R]
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху