我有一个使用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
不是我应用中定义的路线而且无论如何都无法工作。
答案 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
不是我应用中定义的路线而且无论如何都无法工作。