2016-03-23 6 views
1

htaccessファイルに書き換えルールを追加しましたが、2016年以降のディレクトリから同じターゲットファイルを開くと唯一の問題が発生します。例えばhtaccessすべてのページを同じルールに書き換えます

RewriteRule ^elections/assembly/2016/(.*)$ elections/assembly/2016/index.php?state=$1 

: -

http://www.example.com/elections/assembly/2016/dir1/dir2/index.php

上記URLは同じパターンに従います。 私はこれを解決するために手伝ってください。

答えて

0

あなたはルールからあなたの本当のファイルとのdirsを除外する必要があります。

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^elections/assembly/2016/(.*)$ elections/assembly/2016/index.php?state=$1 
+0

あなたは-dの意味が何であるかを理解するために私を助けると –

+0

'するRewriteCond%{REQUEST_FILENAME}を-fてくださいすることができます!の! -d'はルールの条件です。要求が存在するディレクトリでない場合は、要求を書き換えます。そうでない場合は、書き換えをスキップします。 'RewriteCond%{REQUEST_FILENAME}!-d'は同じ方法で動作しますが、存在するファイルを処理します。 – starkeen

+1

ありがとうstarkeen :) –

関連する問題