2012-04-23 17 views
5

私はPHPのフロントコントローラを作成しています。これは私の.htaccessファイルです。.htaccessから1つのファイルをリダイレクトするのを防ぐにはどうすればいいですか?

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteRule (.*) controller.php [L] 
</IfModule> 

このコードは、すべてのURLをcontroller.phpにリダイレクトします。 index.phpcontroller.phpにリダイレクトしないようにする必要があります。他のすべてのURLはcontroller.phpにリダイレクトする必要があります。

+1

参照してください:http://stackoverflow.com/questions/7210931/htaccess-redirect-all-but-one-page-from-html-to-php – Janaki

+0

@Dubious:ありがとう –

+0

あなたは歓迎されています。 upvotingとsupportを続ける – Janaki

答えて

5

あなたは例外を作るために、次の構文を使用することができます。

RewriteRule name_of_page_to_exclude.php - [L] 

ダッシュ(-)が重要です。 [L]は、このルールがトリガーされた場合、最後に処理されるルールであることを確認します。だから、当然、あなたがあなたの質問にルールの前に、あなたの.htaccessファイルの先頭付近に配置する必要があります:

RewriteEngine on 
RewriteRule name_of_page_to_exclude.php - [L] 
RewriteRule (.*) controller.php [L] 

documentationことは言って、次のい:

- (ダッシュ) ダッシュは、置換を実行しないことを示します(既存のパスは変更されません)。

+0

yahh fantastic dr。それは働いている。高価なたくさん。 –

0

は、次の条件を追加します。

RewriteCond %{REQUEST_FILENAME} !-f 

これは実際に存在するすべてのファイルを許可し、それがめちゃくちゃに既に存在している他のファイルのために何かをないでしょう前提としてなりません。

+0

Thanx dr。しかし、それは仕事ではありません。 –

関連する問題