带参数的htaccess RewriteRule

时间:2016-09-01 22:37:33

标签: php apache .htaccess mod-rewrite

我试图做一个改写。

我想这样做; 冲浪者类型

[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.

请帮我解决这个问题。谢谢:))

编辑:我是这样做的,而且很有效。谢谢^^

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

1 个答案:

答案 0 :(得分: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