1

我使用此站点上的有用教程将我的动态 url 重写为静态的,这是我的工作代码:

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 时,它没有用。

那么如何重写子域呢?提前致谢!

4

1 回答 1

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]
于 2013-10-11T11:03:37.167 回答