1

「www.example.com/foo」のようなURLを受け取り、それを「www.example.com/html/foo.php」に書き換える次のコードがあります

RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteRule ^([^\.]+)$ html/$1.php [NC]

書き換えられた URL: 'www.example.com/html/foo.php' が存在しない場合、URL が 'www.example.com/html/fallback.php?query= に書き換えられるように、これを変更したいと思います。フー」

私は何時間もぐるぐる回っています。解決策はありますか?

4

1 に答える 1

3

最初に(を使用して)ファイルの存在チェックを試してから-f、その後、あなたが持っている書き換えを行うことができます:

RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteCond %{REQUEST_URI} ^([^\.]+)$
RewriteCond %{DOCUMENT_ROOT}/html/%1.php !-f
RewriteRule ^ html/fallback.php?query=%1 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^\.]+)$ html/$1.php [L]
于 2013-02-14T23:26:28.980 に答える