子域名重定向工作正常,但未找到服务器错误:Linode

子域名重定向工作正常,但未找到服务器错误:Linode

这是我的虚拟主机:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName policy.domain.com
    ServerAlias www.policy.domain.com
    DocumentRoot /policy
    ErrorLog /policy/error.log
    CustomLog /policy/custom.log combined
    <Directory /policy/>
        Options  +IncludesNOEXEC
        AllowOverride None
        Order allow,deny
        allow from all

        # redirect non www to www
        RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [L]

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



    </Directory>


</VirtualHost>

我尝试了各种设置,但 www 页面似乎没有出现。不过,当我删除非 www 到 www 条件时,php 删除效果很好。具体来说,apache 将非 www 重定向到 www,但在 www 处显示服务器未找到错误。

答案1

您手头的问题(实际问题)听起来像是您的 DNS 条目对于 www.policy.domain.com 不正确。相关说明....根据 Apache 文档,您可能不应该为此使用 mod_rewrite。

http://httpd.apache.org/docs/2.2/rewrite/avoid.html#redirect 上述页面指定不应使用 mod rewrite 将特定位置重定向到不同的子域。

正确的使用可能涉及将 policy.domain.com 和 www.policy.domain.com 分成单独的虚拟主机,并根据需要使用重定向指令。

最后,由于没有说明为什么需要此设置,建议您用静态 www.policy.domain.com 替换 HTTP_HOST。

最后发帖:看来,错误日志可能可以通过网络读取……这是设计使然吗?您是否采取措施保护了它们?

相关内容