2017-05-10 11 views
0

Wordpressのは.htaccessにこのコードを使用しています。wordpress permalinkシステムはどのように機能しますか?

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/
    RewriteRule ^index\.php$ - [L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule . /index.php [L] 
</IfModule> 

最初の質問を、平均以下のコードの行何ん:

RewriteRule ^index\.php$ - [L] 

次の事は、私はindex.phpがこれをどのように処理するか分からないです。

website.pl/One-two-Five 

.htaccessindex.phpに私をリダイレクトします:私はこのURLを入力した場合ので、すべてのURLが

... index.phpにリダイレクトされ

webiste.pl/index.php 

をしかし、情報がない、私はQUERY_STRINGを意味しますか何か。それはのようなものではありません。

website.pl/index.php?data=One-two-Five 

ではなく、それだけである:

website.pl/index.php 

そして、これは単なるindex.phpです...それでは、どのようindex.phpがこれを可能にしていますか? WordPressはこれをどのように処理しますか?私は答えを見つけることができません。これはWordPressの仕組みですか?

答えて

0

私は最近、another questionで議論したことがあります。

RewriteRule ^index\.php$ - [L] 

だけ防止:コードの行について

RewriteRule . /index.php [L] 

は、あなたが言うように、(ファイルまたはディレクトリとして存在していない)すべてがでindex.phpに書き換えますURLがすでにindex.phpの場合はそれ以上の処理が必要です。 -には何も変更されておらず、[L]はこの繰り返しの処理を停止していると言います。これは、URLに変更がない限り、.htaccess書き換えルールが処理を再開するためです(2回目の実行でファイルシステムチェックが行われないようにします)。

WordPressが変数$_SERVER['REQUEST_URI']を調べて、最初に要求されたページを確認してそのことを実行するのはどういうことですか?そのため、最初に要求されたURLは$_SERVER['REQUEST_URI']変数ですでに利用可能であるため、に直接.htaccessファイルに何かを渡す必要はありません。

もう1つの点は、これらがリダイレクトではなく、リライトされていることです。リダイレクトは外部にあり、ブラウザに戻ります。書き換えは内部のみであり、ブラウザのURLは変更されません。

関連する問題