您似乎有服务器配置问题(DNS看起来“正常”?),由于www子域甚至没有到达您的站点-它会导致(看起来)来自您的托管提供商的错误页面:
但htaccess文件是否正确?
严格地说,在内部重写之前,外部重定向(www到非www)应该在文件的顶部附近。
但是,这些指令还有其他问题。事实上,我怀疑mod\\u rewrite是否已启用(或者这是错误的.htaccess
文件?),自从你第一次RewriteRule
可能会阻止访问您的站点(出现403或500错误):
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ %{REQUEST_FILENAME} [L]
# invalid code - and useless if the ^ and % were joined
您已经注释过它是“无效代码”,但它没有被注释掉。为了防止在访问物理文件时进一步重写,应在
RewriteRule
替换。例如:
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
不能重写到文件系统路径(即
REQUEST_FILENAME
服务器变量)中的
.htaccess
上下文这可能无法访问,并导致系统生成403禁止。
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_FILENAME}/index.php -f
RewriteRule ^ %{REQUEST_FILENAME}/index.php [L]
# invalid code as the second condition can NEVER happen and the Rule is flawed (regex of ^ !!!).
我不确定你评论背后的原因,因为第二种情况可能发生。但是,如果您已经声明
DirectoryIndex index.php
(您有)。