Sitemap作成(2)

http://blog.4sure.jp/yokoshima/2009/05/10/sitemap作成/の続きです。

mod_rewtite、見ても全然意味分かんないとは思いますが、たとえば

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . - [L]
RewriteRule  ^([_0-9a-zA-Z-]+/)?(wp-.*) $2 [L]
RewriteRule  ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

だと、

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d

だと、mod_rewrite モジュールによると、

REQUEST_FILENAME
リクエストにマッチしたファイルまたはスクリプトの、 完全なローカルファイルシステムのパス。

とありますので、ファイル。またはディレクトリへのアクセスの場合に、

RewriteRule . - [L]

多分任意の一文字のパス(「/」しかないんじゃ)の場合は「-」とあるので置き換えしないで処理終了([L])だと思います。
次の

RewriteRule  ^([_0-9a-zA-Z-]+/)?(wp-.*) $2 [L]
RewriteRule  ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]

ここで使っているのが正規表現という奴で、

^([_0-9a-zA-Z-]+/)?(wp-.*)

というのは、「_」と0から9,、aからz、AからZと「-」を含む文字列が1回以上で最後が「/」で終わっているのが0回か1回と「wp-」で始まるものという事です。(多分・・・)
つまり「wordpress/wp-content/」とか「wordpress/wp-login.php」等のファイルやフォルダを指すのでしょう。

^([_0-9a-zA-Z-]+/)?(.*\.php)$

というのは、前述の『「wp-」で始まる』という部分が『最後が「.php」で終わる』になったものです。最初に「wp-」で始まるのは弾かれているはずなので、wopdpress/xmlrpc.php等がヒットするのでしょう。
この時に、カッコで囲まれている部分が二つありますが、最初のカッコ内にマッチした文字列が「$1」という変数に入り、二番目のカッコ内にマッチした文字列が「$2」という変数に入ります。
この場合、「foo/wp-content/」というアクセスが来ても、「bar/wp-content/」というアクセスがきても「wp-content/」へアクセスすることになります。
ウチのWordPressMUの設定は、ユーザー毎にサブフォルダでアクセスさせる設定なので、外から見た場合、「http://examble.com/foo/wp-content/」でも「http://examble.com/bar/wp-content/」でも、「http://examble.com/wp-content/」にアクセスすることになります。
なので・・・。
長いので次回に続きます。


One Comment

  1. [...] Sitemap作成(2)の続きです。 [...]

Leave a Reply