Linux 重定向301 www.www.example.com
我使用的是LAMP服务器,我需要重定向如下请求: www.www.example.com到www.example.com以及其他变体,如(www.example.com等) 我知道我可以在.htaccess中实现,但我不知道应该使用正则表达式来表示所有这些可能性 或者有任何不同的方法,与虚拟主机不同?我喜欢:Linux 重定向301 www.www.example.com,linux,apache,seo,http-status-code-301,Linux,Apache,Seo,Http Status Code 301,我使用的是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] RewriteR
# 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。请参阅本文以实现“通配符子域”。您需要实现.htaccess和修改vhost
如果您只想将其限制在“www.www”、“wwwww.”和上面的其他示例中,那么可以通过一些服务器端编码(这比实现更多的.htaccess代码更灵活)轻松实现。只需检测子域是什么,并重定向到您想要的位置。在Apache中使用基于名称的虚拟主机,您可以执行以下操作:
<VirtualHost *:80>
ServerName example.com
ServerAlias wwww.example.com www.www.example.com [space seperated list]
Redirect / http://www.example.com/
</VirtualHost>
ServerName example.com
ServerAlias WW.example.com www.www.example.com[空格分隔列表]
重定向/http://www.example.com/
重定向可以使用一个参数来指定重定向的类型。只是想让您知道:有一个标准规定,www.example.org应该用于示例URI。@Lennart您是认真的吗?谁写的@Cogsy看到那将是RFC2606--这个想法是不要在人们身上使用任意域,因为谁知道如果人们在阅读你的例子时尝试它们会有什么(域占用crud)。只是有点可笑。:-)我想知道你为什么要这么做。。。如果用户键入不同的服务器地址,他们可能需要另一个地址。要么这样,要么他们犯了错误,纠正错误应该是他们的工作。接下来,你将对URL的路径进行拼写检查,并试图纠正它们……这种方法的缺点是你必须事先知道拼写错误。