2016-06-20 28 views
0

これは私の問題です。 URLがファイルが存在しない場合にのみ書き換える方法を知っています。 しかし、私は前に遭遇したことのない問題に出くわしました。 .htaccessファイルで URLをファイルに書き換える.htaccess

  • agences.php .htaccessファイル:

    RewriteEngine on 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^agences/(.*) /agences.php?agence=$1 
    
    ディレクトリのルートに2つのファイルで http://www.my-host.com/agences/my-agencies

    :URLを考えると

    これは/agences.phpにリダイレクトされず、解釈されません。 私はでのRewriteRuleを変更する場合:

    RewriteRule ^agences/(.*) $1 
    

    それも、書き換えルールを処理しません。 そして、私はこのような正規表現の状態にスラッシュを付加そうしても:

    RewriteRule ^/agences/(.*) $1 
    

    私は、Apache 2.4.10上で実行し、AllowOverrideのを持つすべてのバーチャルホストで設定します。

    ありがとうございます。

+0

/agences /をリクエストしたときに404エラーが発生していますか? – starkeen

+0

はい、私が 'http:// www.myhost.com/agences /'を押すと404エラーが出る –

答えて

1

コードの先頭にそれを追加します。

Options -MultiViews 

次のようにのMultiViewsの効果は次のとおりです。いくつかの/ディレクトリ/場合、サーバーは、/ some/dir/fooへの 要求を受信した場合 /some/dir/fooが存在しない場合、サーバはディレクトリ を読み込み、foo。*という名前のファイルを検索し、これらすべてのファイルに同じ名前のファイルを指定するタイプマップ を効果的に作成しますタイプと コンテンツエンコーディングは、クライアントが 名前で。次に、クライアントの 要件に最も適したものを選択します。 http://httpd.apache.org/docs/2.0/en/content-negotiation.html

+1

ありがとう、私はMultiViewsオプションがmod_rewriteの問題であることに気付かなかった –