#apache #.htaccess
#apache #.htaccess
Вопрос:
У меня есть файл .htaccess с кодом:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) ?p=$1 [L]
но я хочу, чтобы он преобразовывал не только строку URI в параметр get p, но и все другие параметры get в p, другими словами:
domain.com/somewhere/somepage.html?foo=2 —->
domain.com/?p=urlencoded (где-нибудь/somepage.html?foo=2)
Как я могу это сделать?
Ответ №1:
Используйте следующий код в файле .htaccess
Options FollowSymlinks -MultiViews
RewriteEngine on
RewriteCond %{QUERY_STRING} !^p= [NC]
RewriteRule . /?p=%{REQUEST_URI}?%{QUERY_STRING} [L]
Поскольку NE
флаг здесь не указан, движок mod_rewrite будет кодировать ваш исходный URI перед внутренним перенаправлением.