Htaccess规则无法在我的网站上运行

时间:2015-05-03 17:33:08

标签: apache .htaccess

我从stackoverflow上的其他答案复制了这段代码,我想缩短一个长网址:

例如

http://example.com/mobile/user.php?uname=foo

http://example.com/foo

这是我目前的代码:

Rewriteengine on 
RewriteCond %{THE_REQUEST} ^.*/mobile/user.php\?uname=(.*).*$ 
RewriteRule . /mobile/%1 [R,L] 
RewriteRule ^(.+)$ /mobile/user.php?uname=$1 [R,L]

它在浏览器中显示有线网址

 http://example.com/mobile/fooHTTP 1.1 

有谁知道为什么会这样?

1 个答案:

答案 0 :(得分:0)

试试这个

 Rewriteengine on 
 RewriteCond %{THE_REQUEST} ^.*/mobile/user.php\?uname=(.*?).*$ 
 RewriteRule . /mobile/%1 [R,L] 
 RewriteRule ^(.+?)$ /mobile/user.php?uname=$1 [R,L]

这种情况正在发生,因为Star(*)是  的 greedy  在Regex中它尽可能消耗。只需在星号后面添加即可更改此行为。

(.*?)