RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1
Учет вопросительного знака при отправке запроса методом GET в файлах .htaccess
Например, на сервере имеется файл .htaccess с правилом замены:
Код:
и файл index.php
Код:
echo $_SERVER['QUERY_STRING'];
Данное правило передает в index.php всю строку после имени домена: site.ru/stroka1/stroka2/fayl.html
в $_SERVER['QUERY_STRING'], как вы понимаете будет stroka1/stroka2/fayl.html
[COLOR=black]Но теперь допустим, что передаем данные на сервере, посредством формы методом GET. ([COLOR=#0000ff][/COLOR][/COLOR]www.site.ru/stroka1/stroka2/fayl.html[COLOR=black]?query=test&ext=15486d)[/COLOR]
в $_SERVER['QUERY_STRING'] окажется строка stroka1/stroka2/fayl.html[COLOR=#0000ff] [/COLOR]Т.е. выше описнанное правило в .htaccess не учитывает данные после вопросительного знака. Если кто знает,как решить данную проблему - помогите, пожалуйста. Заранее спасибо.
Можно заглянуть в $_SERVER['REQUEST_URI'] и обрадоваться, увидев всю строку запроса.
Код:
RewriteRule ^(.*)/(.*)$ index.php?url_way=$1&%{QUERY_STRING}&url_back=%{HTTP_REFERER}
P.S. т.е. {QUERY_STRING} это и есть после вопросительного знака