Quantcast
Channel: FindxFine » htaccess
Viewing all articles
Browse latest Browse all 5

RedirectとRewrite : WordPress

$
0
0

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

Redirect

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

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

Rewrite

<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とRewrite

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

</p>

<h1>BEGIN WordPress</h1>

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

<h1>END WordPress</h1>

<p>

上記は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


Viewing all articles
Browse latest Browse all 5

Trending Articles