2016-09-01 2 views
0

Я пытаюсь создать перезапись.htaccess RewriteRule с параметрами

Я хочу сделать это следующим образом; типы Surfer

[HOST]/ttr/ttr4cmd/register/check_screenname?screenname=[PARAMETER] 

браузера адрес бар показывает тот же адрес, но серфер видит эту страницу;

[HOST]/ttr/ttr4cmd/register/check_screenname.php?screenname=[PARAMETER] 

Итак, я написал простой файл htaccess генератором, подобным этому;

RewriteCond %{QUERY_STRING} (^|&)screenname=($|&) 
RewriteRule ^ttr/ttr4cmd/register/check_screenname$ /ttr/ttr4cmd/register/check_screenname.php?screenname=&%{QUERY_STRING} 

Но когда я иду адресовать, он дает мне ошибку 404 и говорит

ttr/ttr4cmd/register/check_screenname is not found.

Пожалуйста, помогите мне с этим. Спасибо :)

EDIT: Я сделал это так, и это сработало. Спасибо ^^

RewriteRule ^ttr/ttr4cmd/register/check_screenname?$ ttr/ttr4cmd/register/check_screenname.php?$1 [QSA,L] 

ответ

0

Я думаю, что вы будете нуждаться в QSA http://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_qsa

так, например

RewriteCond %{QUERY_STRING} .*screenname.* 
RewriteRule ^/ttr/ttr4cmd/register/check_screenname /ttr/ttr4cmd/register/check_screenname.php [QSA] 

Здесь вы можете найти хорошее интро интро mod_rewrite http://httpd.apache.org/docs/2.4/rewrite/intro.html

+0

Спасибо за ваш быстрый ответ! Но он по-прежнему дает ошибку 404:/ 'Запрошенный URL/ttr/ttr4cmd/register/check_screenname не найден на этом сервере.' –

+0

ОК, тогда активируйте 'trace1', как описано здесь http://httpd.apache.org/ Docs/2,4/мод/mod_rewrite.html # каротаж – Aleksandar