Apache:将WWW重定向到裸域

时间:2014-07-01 15:20:05

标签: apache .htaccess mod-rewrite

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

我做了一些搜索并看了几个例子,但我看到的大部分内容都将所有子域重定向到裸域(这打破了我上面提到的子域功能)或者与我正在尝试做的相反(将裸域重定向到www),这导致我的许多现有路径中的重定向循环。

这是否可以使用Apache完成?

修改

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

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

这会将以www开头的任何网址重定向到其裸露的等效网址,这样可以从子网域中剥离www(例如,www.test.example.com被重定向到{{ 1}}这很棒(虽然不必要)因为test.example.com不是我应用中定义的路线而且无论如何都无法工作。

1 个答案:

答案 0 :(得分:4)

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

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

这会将以www开头的任何网址重定向到其裸露的等效网址,这样可以从子网域中剥离www(例如,www.test.example.com被重定向到{{ 1}}这很棒(虽然不必要)因为test.example.com不是我应用中定义的路线而且无论如何都无法工作。