2010-08-18 49 views
0

我搜索并尝试了很多例子,但似乎没有为我工作。我需要将请求重定向到特定的url,具体取决于原始请求是否在其查询字符串中包含特定项目。如何重定向基于请求的查询字符串值是否存在?

例如

www.mydomain.com/test.html?username=foo &密码=栏

所以我想重定向这仅是用户名变量是存在于查询字符串

www.mydomain .COM/home.html的?用户名= foo的&密码=栏

而且,该页面可以是任何网页,.eg的test.html,home.html的,contact.php

所以,如果用户名变量在查询条件中检测到g,那么重定向只会发生。

感谢您的帮助。

我试过,但没有奏效:

RewriteRule ^username(.*)$ test.html?username=$1 [L,QSA]

回答

0

您可以使用QUERY_STRING来实现这一目标。

RewriteCond %{QUERY_STRING} username 
RewriteCond %{REQUEST_URI} !^/home.html 
RewriteRule .* /home.html/ [L,QSA] 
+0

谢谢。我试过这个,但它似乎没有工作。另外,第二行是干什么的? “RewriteCond%{REQUEST_URI}!^/home.html” – k22k 2010-08-18 18:20:18

+0

当我删除第二行:“RewriteCond%{REQUEST_URI}!^/home.html”,它似乎工作,但我得到500内部服务器错误 – k22k 2010-08-18 18:25:22

+0

@ k22k,第二行将重写规则应用到最终目标(并落入重定向循环)。如果home.html不是处理这个问题的最终脚本,则需要适当地更改它。 这适用于我,是不是只是为你重定向? – jasonbar 2010-08-18 18:28:38

相关问题