0

私の Apache2.2 は次のように動作するようです:www.site.com/name最初に要求すると、 folder/name/が検索され、見つからない場合は次に file が検索されますname.php

しかしRewriteEngine On、.htaccess を有効にして を追加すると、Apacheは RewriteRule にもかかわらず、RewriteRule ^name$ name2.phpフォルダーまたはファイルがあるかどうかを調べます。name

RewriteRule を優先するにはどうすればよいですか?

4

1 に答える 1

0

ここで解決策を見つけましたhttp://httpd.apache.org/docs/2.2/content-negotiation.html - 「Apacheでのネゴシエーション」セクション、「マルチビュー」サブタイトル:

MultiViews の効果は次のとおりです。サーバーが /some/dir/foo の要求を受信した場合、/some/dir で MultiViews が有効になっていて、/some/dir/foo が存在しない場合、サーバーはディレクトリを読み取り、 foo.* という名前のファイル (...)

したがって、私の場合(mod_userdirを使用しています)、編集しました/etc/apache2/mods-enabled/userdir.conf

<IfModule mod_userdir.c>
  (...)
  <Directory /home/*public_html>
    (...)
    #Options MultiViewes # I COMMENTED OUT THIS OPTION
  </Directory>
</IfModule>

ここで、www.domain.com/fooapacheを要求すると、ディレクトリで指定されたファイルが検索されませんfoo! そしてこれからRewriteRule ^name$ another-name.php も働きます。

于 2013-04-06T17:41:01.073 に答える