这是我的虚拟主机:
<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。
正确使用可能涉及将policy.domain.com和www.policy.domain.com分成独立的虚拟主机,并根据需要使用redirect指令。
最后,在没有详细说明你为什么需要这个设置的情况下,build议你用一个静态的www.policy.domain.comreplaceHTTP_HOST。
最后发帖:看来error_logs可能是网页可读的……是由devise吗? 你采取了什么措施来保护他们?