RedirectとRewriteはともにリダイレクトする。違いの1つはRedirectはURLを書き換えるがRewiriteはURLを書き変えない。
Redirect permanent /sample/ http://wwww.example.com/index.php
sampleディレクトリ以下をドキュメントルートのindex.phpへリダイレクトする。
RedirectはURLをhttp://www.example.com/index.phpに書き換えてリクエストする。
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase /example/ RewriteRule . /index.php [L] </IfModule>
sampleディレクトリ以下をドキュメントルートのindex.phpへRewriteでリダイレクトする。
URLの書き換えは行われずhttp://www.example.com/sample/のリクエストのままでhttp://www.example.com/index.phpが呼ばれる。
WordPressはパーマリンクをカスタマイズできる([設定] → [パーマリンクの設定])。パーマリンクを変更するとhtaccessは書き込み権限が付与されていれば自動更新される(書き込み権限がないときはhtaccessファイルを手動で修正する)。パーマリンクをデフォルトから変更するとhtaccessにmod_rewriteが記述される。
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase /wordpress/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /wordpress/index.php [L] </IfModule>
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
No comments yet.
改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。