Справка по Mod_rewrite - PullRequest
       18

Справка по Mod_rewrite

0 голосов
/ 22 октября 2010

Я пытаюсь удалить строки запроса из моего календаря, но мой mod_rewrite не добавляет строку запроса.

Веб-сайт http://cacrochester.com/Calendar и если вы щелкнете по ссылке, чтобы перейти к другому месяцу, строка запроса обычно будет http://cacrochester.com/Calendar?currentmonth=2010-11

С моим правилом, приведенным ниже, оно просто не добавляет строку запроса, поэтому, когда вы нажимаете ссылку следующего месяца, оно просто остается в октябре. Что не так с моим правилом?

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

RewriteCond %{QUERY_STRING} !^$
RewriteRule ^.*$ http://cacrochester.com/Calendar? [NC,R=301,L]

EDIT:

То, что я хочу, это взять URL-адрес типа http://cacrochester.com/Calendar?currentmonth=2010-11 и превратить его в нечто вроде http://cacrochester.com/Calendar/2010-11

Ответы [ 2 ]

2 голосов
/ 25 октября 2010

Возможно, ваше приложение должно выводить относительные URL-адреса, такие как "/ Calendar / 2010-11".Это простое изменение кода.

Затем в Apache вы захотите переписать эти URL, используя:

RewriteRule ^/Calendar/([0-9]+-[0-9]{2})$ /Calendar.php?currentmonth=$1 [NC,QSA,L]

(вам не нужен RewriteCond дляэто правило.)

При принудительном перенаправлении с R = 301 будет раскрыта только внутренняя схема URL.Я не думаю, что это то, что вы хотите.

2 голосов
/ 22 октября 2010

Для поддержки строк запроса при переписывании используйте флаг QSA (добавление строки запроса).

[NC,R=301,QSA,L]

...