apache - 通过 .htaccess 强制 "www."

标签 apache .htaccess

我想强制“www”。在我的网址上(例如 http://domain.com 变为 http://www.domain.com )。但是,我不希望它强制作用于已经有子域的 URL(例如 http://images.domain.com 不应该变成 http://www.images.domain.com )。我在网上找到的以下代码片段执行了后者:

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

我需要做什么才能让它为我工作?谢谢。

最佳答案

简单 以下规则强制使用 www,子域除外。

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

编辑并粘贴它,重新启动apache。

解释:

RewriteCond %{HTTP_HOST} =name.domain [NC] 仅当有人键入 name.domain(您的域名)时才匹配。

当输入 subdomain.name.domain 时,RewriteCond 为 false 并且不重定向。你明白? 在您之前发布的规则中,您匹配 !(not)^(beginning by)www 和 subdomain.name.domain 满足 RewriteCond 并且是您不想要的。 :)

关于apache - 通过 .htaccess 强制 "www.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4907348/

相关文章:

apache - CXF 3.X 和 WSS4J 2.X 中的回调处理程序

php - 如果我的 PHP 脚本在那里写入,那么/var/tmp/mysite 的权限应该是什么?

apache - 从 https 重写为 http

wordpress - htaccess : Redirect entire subfolder to root

php - 1and1 服务器上的 Laravel

php - Laravel 5 需要使用 Apache 虚拟主机的 index.php

apache - ProxyPass 和 ProxyPassReverse 可以在 htaccess 中工作吗?

apache - 在整个网站上启用 www + HTTPS

apache - 将子域重定向到文件而不硬编码 url

apache - apache https 重定向错误(不受信任的连接)