Apache Htaccess规则在我的网站上不起作用
我从stackoverflow上的其他答案复制了此代码,我想缩短一个长url: 比如说 到 这是我目前的代码:Apache Htaccess规则在我的网站上不起作用,apache,.htaccess,Apache,.htaccess,我从stackoverflow上的其他答案复制了此代码,我想缩短一个长url: 比如说 到 这是我目前的代码: Rewriteengine on RewriteCond %{THE_REQUEST} ^.*/mobile/user.php\?uname=(.*).*$ RewriteRule . /mobile/%1 [R,L] RewriteRule ^(.+)$ /mobile/user.php?uname=$1 [R,L] 它在浏览器中显示有线url http://examp
Rewriteengine on
RewriteCond %{THE_REQUEST} ^.*/mobile/user.php\?uname=(.*).*$
RewriteRule . /mobile/%1 [R,L]
RewriteRule ^(.+)$ /mobile/user.php?uname=$1 [R,L]
它在浏览器中显示有线url
http://example.com/mobile/fooHTTP 1.1
有人知道为什么会发生这种情况吗?您的正则表达式在第一条规则中是错误的:
RewriteEngine on
RewriteCond %{THE_REQUEST} /mobile/user\.php\?uname=([^\s&]+) [NC]
RewriteRule . /mobile/%1? [R,L]
RewriteRule ^(.+)$ /mobile/user.php?uname=$1 [R,L]
试试这个
Rewriteengine on
RewriteCond %{THE_REQUEST} ^.*/mobile/user.php\?uname=(.*?).*$
RewriteRule . /mobile/%1 [R,L]
RewriteRule ^(.+?)$ /mobile/user.php?uname=$1 [R,L]
这是因为星号(*)是
在正则表达式中,因此它会消耗尽可能多的资源。只要在星星后面加一个?,这种行为就可以改变
(.*?)