2009-08-18 13 views
1
# BEGIN 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

# END 

私はhtaccessの初心者ですから、その行の意味を説明するのに手伝ってください。htaccessで要求を制御する方法

答えて

4

詳細にもう少し:

  • <IfModule mod_rewrite.c>
    条件が真の場合<IfModule> blockの内容のみが処理されます。この場合、モジュールmod_rewriteがロードされている場合に限り、囲まれたディレクティブが処理されます。

  • RewriteEngine On
    RewriteEngine Onそのディレクトリとそのサブディレクトリのために書き換えエンジンを有効にする必要があります。

  • RewriteBase /
    RewriteBase //にディレクトリ毎のベースURLパスを設定します。しかし、URLパスが物理パスでない場合にのみ必要です。

  • RewriteCond %{REQUEST_FILENAME} !-f
    この条件は、要求されたファイル名(ファイルシステムにマッピングされた要求されたURLパス)が通常のファイルであってはならないと述べています。

  • RewriteCond %{REQUEST_FILENAME} !-d
    前回と同じですが、それは、既存のディレクトリであってはなりません。

  • RewriteRule . /index.php [L]
    このルールは、任意の非空のURLパス(より正確にはベースURLパスなしで要求されたURLパス)一致する対応する条件が両方とも真である場合に/index.phpと代替して。さらに、最後のルールとしてフラグが立てられます。したがって、ルールが適用されると、現在のルール処理がここで停止します。 <IfModule …>

  • </IfModule>
    カウンターパート。

+0

これは見ています、ありがとう – coderex

2

.htaccessは、リライトベース(この.htaccessが存在するディレクトリ)に存在するディレクトリと物理ファイルを除き、すべての要求を/index.phpに書き換えます。これは、多くのフレームワークとコンテンツマネジメントシステムが "きれいな" URL(スタックオーバーフローで見られるような)を達成するための、かなり標準的な方法です。

mod_rewrite docsにも興味があります。

関連する問題