子域名redirect工作,但服务器没有find错误: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是​​非wwwredirect到www,但在www它显示服务器没有发现错误。

您手边的问题(实际问题),听起来像您的DNS条目不正确www.policy.domain.com。 作为一个相关的说明….按照Apache文档,你可能不应该使用mod_rewrite。

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

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

最后,在没有详细说明你为什么需要这个设置的情况下,build议你用一个静态的www.policy.domain.comreplaceHTTP_HOST。

最后发帖:看来error_logs可能是网页可读的……是由devise吗? 你采取了什么措施来保护他们?