我使用了有用的教程on this site将我的动态网址重写为静态网址,这是我的工作代码:
RewriteEngine on
RewriteRule ^users/([^/]+)/?$ /beta/user.php?u=$1 [L]
# Externally redirect client requests for old dynamic URLs to equivalent new static URLs
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /beta/user\.php\?u=([^&]+)\ HTTP/
RewriteRule ^/beta/user\.php$ http://www.mywebsite.com/users/%1? [R=301,L]
并且效果很好,导致此网址
www.mywebsite.com/beta/user.php?u=blabla
也可以读作
www.mywebsite.com/users/blabla
现在,问题出在哪里? 所以,我正在移动网站上工作
m.mywebsite.com
我想对包含user.php的“m”子域做同样的事情。 那么
m.mywebsite.com/user.php?u=blabla
将重写为
m.mywebsite.com/users/blabla
然而,当我更改上面的.htaccess时,它没有用。
那么我该如何重写子域呢?提前谢谢!
答案 0 :(得分:1)
第一条规则中存在轻微的正则表达式问题。
以下是适用于移动网站的更正代码:
RewriteEngine on
# Externally redirect client requests for old dynamic URLs to equivalent new static URLs
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\s/+beta/user\.php\?u=([^&\s]+)
RewriteRule ^ /users/%1? [R=301,L]
RewriteRule ^users/([^/]+)/?$ /beta/user.php?u=$1 [L,NC,QSA]