我遇到问题我只想将mydomain.com重定向到www.mydomain.com,但我发现的解决方案使我的oder子域名如admin.mydomain.com重定向到www.admin.mydomain。 COM。 我有一个使用Apache的Ubuntu 14.04并且使用Laravel(PHP)。
我只是希望这发生在mydomain.com / ....到www.mydomain.com / ...但是当开头有其他东西时没有,比如admin.mydomain.com
我在这里留下了我找到的解决方案但是我刚刚解释过这个小问题。
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
答案 0 :(得分:1)
以下是我用来强制使用www。
的规则RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
这应该只放在具有域
的顶级定义的VirtualHost中ServerName exmaple.com
每个其他子域都应该有自己的虚拟主机定义。
答案 1 :(得分:1)
您可以指定要重定向的域:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
答案 2 :(得分:1)
# Redirect anything except admin.yourdomain.com, admin1.yourdomain.com
RewriteCond %{HTTP_HOST} !^(admin|admin1)\.yourdomain\.com$ [NC]
# Redirect to www.yourdomain.com, without changing the URI
RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [L,R=302]
对于多个子域,这将起作用
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} ^yourdomain.com [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]