我正在使用LAMP服务器,我需要重定向请求,如:
www.www.example.com访问www.example.com以及其他变体,例如(wwww.example.com等)
我知道我可以在.htaccess中执行此操作,但我不知道我应该用它来表示所有这些可能性的正则表达式。
或者有什么不同的方法,来自vhosts?
答案 0 :(得分:5)
我喜欢:
# 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'd。
答案 1 :(得分:2)
请参阅此文章以实现“通配符子域”。您将需要同时实现.htaccess和修改Vhost。
http://www.easymodrewrite.com/example-subdomains
如果您只想将其限制为“www.www”,“wwww。”以及上面的其他示例,您可以通过一些服务器端编码轻松实现(这使其比实施更多内容更灵活) .htaccess代码)。只需检测子域是什么,然后重定向到您想要的位置。
答案 2 :(得分:0)
在Apache中使用基于名称的虚拟主机,您可以这样做:
<VirtualHost *:80>
ServerName example.com
ServerAlias wwww.example.com www.www.example.com [space seperated list]
Redirect / http://www.example.com/
</VirtualHost>
重定向可以使用参数来指定重定向的类型。