Я хотел бы удалить строку запроса из 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, есть ли простой способ записать это где-нибудь?