2

mod_rewrite に問題があり、.htaccess 以外の他の構成ファイルのグローバル ルールが原因である可能性があり、有効なすべての RewriteRules を表示する方法があるかどうかを確認する必要があります。

具体的には、http://mydomain.com/pages/testは正常に動作しますが (pages/index.php にリダイレクトされます)、http://mydomain.com/pages/test-pageは 404 エラーを返します。ページ/区切りの後にダッシュを含むもの。他のすべてが機能します。/pages/file.xx が見つかった場合は、それを表示します。それ以外の場合は、/pages/index.php に送信します

私の.htaccess

RewriteEngine オン
RewriteBase /ページ

RewriteCond %{REQUEST_FILENAME} -f [または]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . - [大]
RewriteRule ^([_0-9a-zA-Z-]+/)?(am-.*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule (.*)$ /pages/$1/ [R=301,L]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9\-_\/\s]+)/?$ /pages/index.php [L]

EDIT RewriteLogをオンにすると、URL「domain.com/pages/test-string」に対して次のようになります。

xx.xx.xx.xx - - [03/Oct/2012:11:34:15 -0400] [domain.com/sid#17b39d20][rid#172fe530/initial] (1) [per-dir /hsphere/ local/home/domain/domain.com/pages/] /hsphere/local/home/domain/domain.com/pages/test-string を通過します
xx.xx.xx.xx - - [03/Oct/2012:11:34:16 -0400] [domain.com/sid#17b39d20][rid#172fe530/initial] (1) [per-dir /hsphere/ local/home/domain/domain.com/pages/] /hsphere/local/home/domain/domain.com/splash/test-string を通過します

URL「domain.com/pages/test」の結果は次のとおりです。

xx.xx.xx.xx - - [03/Oct/2012:11:37:46 -0400] [domain.com/sid#17b39d20][rid#172fe530/initial] (2) [per-dir /hsphere/ local/home/domain/domain.com/pages/] 書き換えテスト -> /pages/test/
xx.xx.xx.xx - - [03/Oct/2012:11:37:46 -0400] [domain.com/sid#17b39d20][rid#172fe530/initial] (2) [per-dir /hsphere/ local/home/domain/domain.com/pages/] http://domain.com/pages/test/ で明示的にリダイレクトを強制します
xx.xx.xx.xx - - [03/Oct/2012:11:37:46 -0400] [domain.com/sid#17b39d20][rid#172fe530/initial] (2) [per-dir /hsphere/ local/home/domain/domain.com/pages/] プレフィックス /hsphere/local/home/domain/domain.com/pages/ を /pages に置き換えようとしています
xx.xx.xx.xx - - [03/Oct/2012:11:37:46 -0400] [domain.com/sid#17b39d20][rid#172fe530/initial] (1) [per-dir /hsphere/ local/home/domain/domain.com/pages/] リダイレクトのために http://domain.com/pages/test/ をエスケープ
xx.xx.xx.xx - - [03/Oct/2012:11:37:46 -0400] [domain.com/sid#17b39d20][rid#172fe530/initial] (1) [per-dir /hsphere/ local/home/domain/domain.com/pages/] http://domain.com/pages/test/ にリダイレクト [REDIRECT/301]
xx.xx.xx.xx - - [03/Oct/2012:11:37:46 -0400] [domain.com/sid#17b39d20][rid#172fe530/initial] (2) [per-dir /hsphere/ local/home/domain/domain.com/pages/] rewrite test/ -> /pages/index.php
xx.xx.xx.xx - - [03/Oct/2012:11:37:46 -0400] [domain.com/sid#17b39d20][rid#172fe530/initial] (2) [per-dir /hsphere/ local/home/domain/domain.com/pages/] プレフィックス /hsphere/local/home/domain/domain.com/pages/ を /pages に置き換えようとしています
xx.xx.xx.xx - - [03/Oct/2012:11:37:46 -0400] [domain.com/sid#17b39d20][rid#172fe530/initial] (1) [per-dir /hsphere/ local/home/domain/domain.com/pages/] /pages/index.php による内部リダイレクト [内部リダイレクト]
xx.xx.xx.xx - - [03/Oct/2012:11:37:46 -0400] [domain.com/sid#17b39d20][rid#17c144e0/initial/redir#1] (1) [per- dir /hsphere/local/home/domain/domain.com/pages/] パススルー /hsphere/local/home/domain/domain.com/pages/index.php
4

1 に答える 1

0

RewriteLogと RewriteLogLevelの行を追加します。かなり長くなる可能性があるため、ログ レベル 2 または 3 から始めます。

于 2012-10-03T14:52:23.663 に答える