【问题标题】:Apache: Redirect WWW to naked domainApache:将万维网重定向到裸域
【发布时间】:2014-08-22 05:24:23
【问题描述】:

我有一个使用 Laravel 编写的应用程序,它会生成动态子域。因此,我有一个通配符(*)路由机制。由于我在使用 SSL 时遇到了一些复杂情况,我需要将 www.example.com 路由重定向到裸域 (example.com),最好使用 RewriteRules 在 Apache .conf 文件中。

我已经进行了一些搜索并看到了一些示例,但我所看到的大部分内容要么将 all 子域重定向到裸域(这破坏了我上面提到的子域功能),要么与我尝试做的相反(将裸域重定向到 www),这会在我的许多现有路由中导致重定向循环。

这是可以使用 Apache 完成的吗?

编辑:

我想我修好了。对于其他有类似问题的人,我在/etc/apache2/sites-enabled/000-default.conf 中使用了以下规则:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
    RewriteRule ^(.*)$ http://%1$1 [R=301,L]

这会将任何以 www 开头的 URL 重定向到其裸对应的 URL,这具有从子域中剥离 www 的额外好处(因此,例如,www.test.example.com 被重定向到 test.example.com,这很棒(尽管不必要)因为www.{subdomain}.example.com 不是我的应用程序中定义的路线,无论如何都不会工作。

【问题讨论】:

  • http://%1$1 应该是http://%1/$1。否则www.example.com/directory/ 将变为example.comdirectory/。我会自己进行编辑,但它只有一个字符。

标签: apache .htaccess mod-rewrite


【解决方案1】:

我想我修好了。对于其他有类似问题的人,我在/etc/apache2/sites-enabled/000-default.conf 中使用了以下规则:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
    RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

这会将任何以 www 开头的 URL 重定向到其裸对应的 URL,这具有从子域中剥离 www 的额外好处(因此,例如,www.test.example.com 被重定向到 test.example.com,这很棒(尽管不必要)因为www.{subdomain}.example.com 不是我的应用程序中定义的路线,无论如何都不会工作。

【讨论】:

  • http://%1$1 应该是http://%1/$1。否则www.example.com/directory/ 将变为example.comdirectory/。我会自己进行编辑,但它只有一个字符。
猜你喜欢
  • 2015-01-09
  • 2015-12-16
  • 2015-01-07
  • 1970-01-01
  • 2015-10-15
  • 2021-03-03
  • 2015-11-15
  • 2013-10-31
  • 2021-07-30
相关资源
最近更新 更多