簡體   English   中英

httpd.conf中的mod_rewrite無法正常工作(但.htaccess中有效)

[英]mod_rewrite in httpd.conf not working (but does in .htaccess)

我在2個不同的服務器上有一個非常相似的設置(工作的一個是在Centos 6上的Plesk安裝,另一個是在Centos 6上的普通LAMP設置),並且在普通LAMP服務器上的mod_rewrite有問題。

我已經比較了兩台服務器上的httpd.conf(及其關聯的include),並且兩者(出於所有意圖和目的)都是相同的。

在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添加為具有完整documentroot等的虛擬主機,然后將相同的重寫添加到該documentroot中的.htaccess,則重定向工作正常。

如果啟用重寫日志記錄,則可以看到正在運行.htaccess版本,但httpd.conf中沒有任何內容。 我無法為自己的生命解決錯誤/遺漏的問題:(

您的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]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM