タグ :

RedirectとRewriteとWordPress : WordPress

投稿日 : 2011年10月26日 | 更新日 : 2012年05月10日 前のページへ戻る

RedirectとRewriteはともにリダイレクトする。違いの1つはRedirectはURLを書き換えるがRewiriteはURLを書き変えない。

Redirect

Redirect permanent /sample/ http://wwww.example.com/index.php

sampleディレクトリ以下をドキュメントルートのindex.phpへリダイレクトする。 RedirectはURLをhttp://www.exsample.com/index.phpに書き換えてリクエストする。

Rewrite

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /exsample/
RewriteRule . /index.php [L]
</IfModule>

sampleディレクトリ以下をドキュメントルートのindex.phpへRewriteを使ってリダイレクトする。 URLの書き換えは行われずhttp://www.exsample.com/sample/のリクエストのままhttp://www.exsample.com/index.phpが呼ばれる。

WordPressとRewrite

WordPressはパーマリンクをカスタマイズできる([設定] → [パーマリンクの設定])。パーマリンクを変更すると書き込み権限を持つhtaccessは自動で更新される(書き込み権限がないときはhtaccessファイルを手動で修正する)。パーマリンクをデフォルトから変更するとhtaccessにmod_rewriteが記述される。

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

上記はWordPressへのリクエストをリダイレクトして/wordpress/index.phpを呼び出す。このときRewriteはリクエストされたURLを書き換えずにリダイレクトする。そのためindex.phpは元のリクエストのURLを知ることができURLに応じた処理を行う。

仮に下記のようにRedirectを使うとURLが/wordpress/index.phpに書き換えられindex.phpは元のリクエストのURLを知ることができない。

Redirect temp /wordpress/ http://wwww.example.com/wordpress/index.php

» HTTPリダイレクト Others htaccess
» htaccessでリダイレクト機能を利用する方法 | BULANCO BLOG

Apache | 固定リンク | Comments (0)

関連記事

このページの上へ移動

コメント

コメントはまだありません。

コメントの投稿

改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。

 

 

 


トラックバックURL

http://www.findxfine.com/server/apache/995554278.html/trackback

このページの上へ