2010-08-02 1 views
1

У меня есть набор правил перезаписи, которые должны обрабатывать URL-адрес, который имеет от 1 до 5 параметров. Поэтому мой URL-адрес может выглядеть так: www.site.com/topic1/page1 или www.site.com/topic1/sub1/page1.Проблема с правилом перезаписи URL-адресов htaccess, строка запроса добавляется к результирующему URL-адресу

Вот мои правила в этом примере:

RewriteRule ^([^/.]+)/?$ /staticpages/process-selection.php?param1=$1 [E=rwdone:yes,L] 
RewriteRule ^([^/.]+)/([^/.]+)/?$ /staticpages/process-selection.php?param1=$1&param2=$2 [E=rwdone:yes,L] 
RewriteRule ^([^/.]+)/([^/.]+)/([^/]+)/?$ /staticpages/process-selection.php?param1=$1&param2=$2&param3=$3 [E=rwdone:yes,L] 
RewriteRule ^([^/.]+)/([^/.]+)/([^/]+)/([^/]+)/?$ /staticpages/process-selection.php?param1=$1&param2=$2&param3=$3&param4=$4 [E=rwdone:yes,L] 
RewriteRule ^([^/.]+)/([^/.]+)/([^/]+)/([^/]+)/([^/]+)/?$ /staticpages/process-selection.php?param1=$1&param2=$2&param3=$3&param4=$4&param5=$5 [E=rwdone:yes,L] 

Усложняет дело, я мог бы редирект 301 от старого URL к одному из этих новых URL-адресов. Таким образом, «/ topic1/page1/oldpage» сначала может быть перенаправлен на «/ topic1/page1/newpage».

По какой-то причине, когда происходит переписывание, то URL, который отображается в браузере есть правильный URL, но со старыми переменными, приложенных к URL, как это: /topic1/стр.1/NewPage param1 = стр.1 & param2 = oldpage

Мне интересно, есть ли способ избежать этой ситуации. что, черт возьми, я делаю неправильно здесь.

ответ

0

mod_alias работает позднее mod_rewrite и [L] флаг действителен только для mod_rewrite правил, не mod_alias (то есть эти правила будут по-прежнему применяться к исходному URL, но как ни странно, по-видимому, с новой строки запроса). Чтобы включить mod_alias, чтобы увидеть уже переписанный URL-адрес, используйте флаг [PT] или попробуйте сделать все переписывание/перенаправление с помощью mod_rewrite.

+0

Большое спасибо за ваш ввод. Я смог решить проблему, изменив код перенаправления 301 на RewriteRule^url [R = 301, L]. Наконец, не видя странных параметров, добавленных в мои URL-адреса браузера. – Waylien

Смежные вопросы