【发布时间】:2013-11-19 14:10:41
【问题描述】:
我最近从共享主机切换到 VPS。 一切正常,我可以访问我的所有域。
但我似乎有 1 个问题: 过去所有非 www 的 url 都被重定向到带有 www 的 url。
我使用以下 htaccess.txt 代码完成此操作:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.tx3\.be$ [NC]
RewriteRule ^(.*)$ http://www.tx3.be/$1 [R=301,L]
但我当时正在使用带有以下代码的新 htaccess:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^off(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
但两者都无法重定向我的非 www 域。
当我访问我的非 www 域时,我会看到以下页面: “Apache 运行正常”
我尝试使用 DirectAdmin 重定向将非 www 域重定向到带有 www 的域,但这也不起作用。
也许我完全搞错了,而且一开始这不是 htaccess 问题。
我是否忘记了服务器设置中的某些内容? 我不知道,一切看起来都井井有条。 (我确实仔细检查了我的 DNS 设置,它们似乎没问题)
有人知道我接下来应该做什么吗?
【问题讨论】:
-
您是否验证了 .htaccess 正在被应用?在服务器级别或
<Directory>配置中,您必须具有适当的AllowOverride 指令才能解析.htaccess。共享主机会为您完成此操作,但 VPS 可能会要求您自己完成。 -
要测试 HTTPS 是否关闭,您可以使用简单的东西,例如
RewriteCond %{HTTPS} !on -
@MichaelBerkowski,是的,htaccess 正在工作,因为其中还有其他规则可以应用;)
-
然后通过一次禁用一个条件进行调试。
-
我做了,两个域,有 www 和没有 www 仍然可以访问...
标签: php apache .htaccess mod-rewrite redirect