0

htaccessでURLを確認したい。開発者は、特別なファイル (specialfile.php) を実行したい場合があります。私はhtaccessを使用します:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /specialfile\.php$
RewriteRule .* [L]   #don't change adress
RewriteRule ^$ public/index.html [NC,L]
RewriteRule (.*) public/$1 [NC,L]

私の考えは: もし rewriteCond %{REQUEST_URI} !/specialfile.php$ true よりも htaccess が RewriteRule .* [L] を使用する必要がある場合 - これは、specialfile.php が実行され、これがすべて実行されることを意味するはずです。しかし、次のルールを実行するため機能しません: RewriteRule (.*) public/$1 [NC,L].

4

1 に答える 1

0

の使い方が間違っていると思いますRewriteCond。条件は、次に続くものにのみ影響RewriteRuleします。

Apache Homepage の例を確認してください。あなたの2番目は評価されているので、RewriteRuleあなたの条件は正しくないと思います。書き換えに関する情報をもう少し取得するには、ログ レベルを上げる必要があります。これはここにも文書化されています

2番目のルール^$は、空のリクエストのみに一致します. そのため、期待どおりに機能しない可能性があります。

于 2012-11-19T10:15:08.837 に答える