Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Mod rewrite – не срабатывает правило
Форумы портала PHP.SU » Серверное администрирование » Apache и другие веб-серверы » Mod rewrite – не срабатывает правило

Страниц (1): [1]
 

1. Ch_chov - 25 Апреля, 2009 - 07:58:16 - перейти к сообщению
Если в браузере набираю qqqq то скрипт test.php получает $_SERVER['QUERY_STRING'] = a=2&a=1 , т.е. срабатывают оба правила, хотя параметр [L] в первой строке должен по идее отменить последующие преобразования.
CODE (text):
скопировать код в буфер обмена
  1. RewriteRule  qqqq  test.php?a=1 [L,QSA]
  2.   RewriteRule  test  test.php?a=2 [L,QSA]

В чём причина ?
2. valenok - 26 Апреля, 2009 - 01:44:26 - перейти к сообщению
QSA если убрать, лучше не становится ?
[L,NC] попробуй.

больно странный query string у тебя скрипт получает в итоге
3. Ch_chov - 26 Апреля, 2009 - 08:32:34 - перейти к сообщению
Всё оказалось сложней чем я думал...

Цитата:
[L] на самом деле не останавливает полностью разбор правил. Если разбор происходит в .htaccess (как это обычно бывает), то совершается переход в конец .htaccess, и вот тут уже… происходит перенаправление? Ну да, только в его результате мы с большой вероятностью опять попадаем на тот же .htaccess, и начинается проход по всем правилам заново (даже при внутреннем редиректе!). И этот цикл будет продолжаться до тех пор, пока не настанет момент, когда ни одно правило не сработает (или пока мы редиректом не выйдем из директории, в которой лежит наш .htaccess). Вот тогда уже сервер отдаст страничку.


http://zoneli[dot]ru/?p=45

 

Powered by ExBB FM 1.0 RC1