我正在使用 LAMP 服务器,我需要重定向请求,例如:
www.www.example.com 到 www.example.com 和其他变体,例如(www.example.com 等)
我知道我可以在 .htaccess 中做到这一点,但我不知道应该使用什么正则表达式来表示所有这些可能性。
或者有什么不同的方法,来自虚拟主机?
我正在使用 LAMP 服务器,我需要重定向请求,例如:
www.www.example.com 到 www.example.com 和其他变体,例如(www.example.com 等)
我知道我可以在 .htaccess 中做到这一点,但我不知道应该使用什么正则表达式来表示所有这些可能性。
或者有什么不同的方法,来自虚拟主机?
我喜欢:
# force www IN URL
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
# END force www IN URL
基本上任何不是www.example.com 的东西都会被重定向 301。
请参阅本文以实现“通配符子域”。您将需要实现 .htaccess 和修改 Vhost。
http://www.easymodrewrite.com/example-subdomains
如果您只想将其限制为“www.www”、“wwww.”和上面的其他示例,您可以通过一些服务器端编码轻松地做到这一点(这使得它比实现更多 .htaccess 代码更灵活)。只需检测子域是什么,然后将其重定向到您想要的位置。
在 Apache 中使用基于名称的虚拟主机,您可以这样做:
<VirtualHost *:80>
ServerName example.com
ServerAlias wwww.example.com www.www.example.com [space seperated list]
Redirect / http://www.example.com/
</VirtualHost>
重定向可以带一个参数来指定重定向的类型。