我在两个不同的服务器上有一个非常相似的设置(工作一个是Centos 6上的Plesk安装,另一个是Centos 6上非常简单的LAMP设置)并且我在普通LAMP服务器上遇到mod_rewrite问题。 / p>
我比较了两个服务器上的httpd.conf(和相关的包含),两者都是(出于所有意图和目的)。
在plesk服务器上,我在我的httpd.conf文件中有以下内容,该文件将http://stats.domain.com重定向到http://www.domain.com/webstat/,这可以解决问题;
<VirtualHost *:80>
ServerName stats
ServerAlias stats.*
UseCanonicalName Off
RewriteEngine On
RewriteCond %{HTTP_HOST} stats\.(.*) [NC]
RewriteRule ^.*$ http://www.%1/webstat/ [L,R=301]
</VirtualHost>
在LAMP服务器上,我的httpd.conf文件中有以下内容,该文件应该将http://stats.domain.com重定向到http://www.domain.com/awstats/awstats.pl?config=domain.com
<VirtualHost *:80>
ServerName stats
ServerAlias stats.*
UseCanonicalName Off
RewriteEngine On
RewriteCond %{HTTP_HOST} stats\.(.*) [NC]
RewriteRule ^$ http://www.%1/awstats/awstats.pl?config=%1 [L,R=301]
</VirtualHost>
但是在httpd.conf文件中这不起作用。如果我将stats.domain.com添加为具有完整文档的虚拟主机等,然后在该文档中添加相同的重写到.htaccess,重定向工作正常。
如果我启用重写日志记录,那么我可以看到.htaccess版本正在通过,但httpd.conf中没有任何内容。我不能为我的生活找出错误/缺失的原因:(
答案 0 :(得分:0)
您的LAMP服务器的重写规则只是放入domain.com。
RewriteCond %{HTTP_HOST} stats\.(.*) [NC]
RewriteRule ^$ http://%1/awstats/awstats.pl?config=%1 [L,R=301]
上面的评论说它应该是www,更像是第一条规则。
RewriteRule ^.*$ http://www.%1/awstats/awstats.pl?config=%1 [L,R=301]