httpd.conf中的mod_rewrite不起作用(但在.htaccess中)

时间:2013-07-18 22:21:45

标签: apache mod-rewrite

我在两个不同的服务器上有一个非常相似的设置(工作一个是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中没有任何内容。我不能为我的生活找出错误/缺失的原因:(

1 个答案:

答案 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]