【问题标题】:Redirect 301 www.www.example.com重定向 301 www.www.example.com
【发布时间】:2010-11-05 06:09:04
【问题描述】:

我正在使用 LAMP 服务器,我需要重定向请求,例如:

www.www.example.com 到 www.example.com 以及其他变体,例如(www.example.com 等)

我知道我可以在 .htaccess 中做到这一点,但我不知道应该使用什么正则表达式来表示所有这些可能性。

或者有什么不同的方法,来自虚拟主机?

【问题讨论】:

  • 只是让您知道:有一个标准定义应该使用 www.example.org 作为示例 URI。
  • @Lennart 你是认真的吗?谁写的?!
  • @Cogsy 见example.com
  • 那将是 RFC 2606 -- rfc-editor.org/rfc/rfc2606.txt -- 这个想法是不要对人们使用任意域,因为如果人们在阅读您的文章时尝试它们,谁知道会出现什么(域名抢注)例子。只是有点好笑。 :-)
  • 我想知道你为什么要这样做......如果用户输入不同的服务器地址,他们可能想要另一个地址。要么是那个,要么是他们犯了错误,纠正错误应该是他们的工作。接下来,您将对 URL 的路径进行拼写检查并尝试更正它们...

标签: linux apache seo http-status-code-301


【解决方案1】:

在 Apache 中使用基于名称的虚拟主机,您可以这样做:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias wwww.example.com www.www.example.com [space seperated list]

    Redirect / http://www.example.com/
</VirtualHost>

重定向可以带一个参数来指定重定向的类型。

【讨论】:

  • 这种方法的缺点是你必须提前知道错别字。
【解决方案2】:

有关实施“通配符子域”的信息,请参阅本文。您将需要实现 .htaccess 和修改 Vhost。

http://www.easymodrewrite.com/example-subdomains

如果您只想将其限制为“www.www”、“wwww.”和上面的其他示例,您可以通过一些服务器端编码轻松地做到这一点(这使得它比实现更多.htaccess 代码)。只需检测子域是什么,然后重定向到您想要的位置。

【讨论】:

    【解决方案3】:

    我喜欢:

    # 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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-26
      • 2013-01-07
      • 2018-03-06
      • 2012-02-06
      • 2011-11-17
      • 2010-12-16
      • 2011-05-01
      • 2012-04-20
      相关资源
      最近更新 更多