1つのマシンでRewriteCond
とRewriteRule
を複雑にしています。そしてこれらのルールに従って、リクエストのいくつかは別のマシンにリダイレクトされます。
リダイレクトがどのように行われるかを明確に示すApacheログはありますか?リダイレクトが予期しない方法で行われているためです。
初心者の場合、これは* .confファイルの記述方法です。
NameVirtualHost *:80
<VirtualHost *:80 >
ServerName gw.myserver.net
DocumentRoot "C:\Program Files\MyCompany\myserver\Web"
DirectoryIndex index.html index.php
RewriteLog "logs\rewritelog.txt"
RewriteLogLevel 3
<Directory "C:\Program Files\ MyCompany\ myserver\Web">
AddDefaultCharset UTF-8
Order Deny,Allow
Allow from all
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_Host} ^gw\. myserver\.net$
RewriteRule !^(login|index.php) http://pmmenu. myserver\.net%{REQUEST_URI}$1 [L,R=301]
# we check if the .html version is here (caching)
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
# no, so we redirect to our front web controller
RewriteRule ^(.*)$ index.php [QSA,L]
</Directory>
</VirtualHost>
仮想ホストまたはサーバー構成で書き換えログを有効にする必要があります
RewriteLog "/usr/local/var/Apache/logs/rewrite.log"
参照 http://httpd.Apache.org/docs/2.0/mod/mod_rewrite.html#rewritelog
Rewrite
ディレクティブを使用して、RewriteLog
処理専用のログファイルを設定できます。ロギングの量はRewriteLogLevel
で選択できます。