Удалить QUERY_STRING из URL только для /index.php - PullRequest
0 голосов
/ 27 июля 2011

Я хотел бы удалить строку запроса из URL, используя mod_rewrite (.htaccess), но только для /index.php (а не /).

Например, http://www.example.org/index.php?foo=bar следует перенаправить на http://www.example.org/index.php, а http://www.example.org/?foo=bar следует оставить в покое.

Это мой текущий sutup:

RewriteCond %{QUERY_STRING} !=""
RewriteCond %{REQUEST_URI} ^/index\.php
RewriteRule ^(.*)$ /$1? [R=301,L]

Это работает, но не с желаемым ограничением (то есть все равно удаляет строку запроса, даже если index.php отсутствует в URL. Я думаю, что это может быть связано с REQUEST_URI, понимающим, что / внутренне перенаправляется до /index.php, но я не уверен.

Как побочный вопрос, мне было бы намного легче разобраться с этим, если бы я мог понять, какое значение использовалось REQUEST_URI, есть ли простой способ записать это где-нибудь?

1 Ответ

0 голосов
/ 27 июля 2011

Вы можете добавить эти строки в ваш httpd.conf, чтобы увидеть, что происходит

RewriteLog /path/to/log
RewriteLogLevel 5
...