0

私は2つの異なるサーバーで非常によく似た設定をしています(動作しているのはCentos 6でのPleskインストールであり、もう1つはCentos 6でのかなり単純なLAMPセットアップです)、プレーンLAMPサーバーでmod_rewriteに問題があります。

両方のサーバーで httpd.conf (および関連するインクルード) を比較しましたが、両方とも (すべての意図と目的で) 同じです。

pleskサーバーでは、httpd.confファイルに次のものがあり、 http: //stats.domain.comhttp://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.comhttp://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 からは何もわかりません。私は一生、何が間違っている/欠けているのかを理解することはできません:(

4

1 に答える 1

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]
于 2013-07-18T22:28:46.393 に答える