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

パーマリンクの設定とhtaccess・mod_rewrite : WordPress

$
0
0

WordPressはパーマリンクをカスタマイズできる([設定] → [パーマリンクの設定])。
パーマリンクを変更したときhtaccessに書き込み権限があれば自動で更新される(書き込み権限がないときはhtaccessを手動で修正する)。

パーマリンクを変更したときhtaccessにはmod_rewrite(mod_rewriteはApacheのモジュール[2])が記述される。

パーマリンクを変更した際のhtaccessの記述例

WordPressをドキュメントルート直下にwordpressディレクトリを作成してインストールした場合の基本例。

</p>

<h1>BEGIN WordPress</h1>

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

<h1>END WordPress</h1>

<p>

(1)(2) 実際のファイルまたはディレクトリが存在しない場合に限り(3)の処理を実行する[3]
(3) (1),(2)を満たすアクセスをドキュメントルート直下のwordpressディレクトリにあるindex.phpへリライトして処理を終了する。

» mod_rewriteの考え方。 – こせきの技術日記

NTT コムの場合のhtaccess

デフォルトは下記の通り。

RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [L]

パーマリンクを下記の通り設定した際のhtacess

/%category%/%post_id%.html
RewriteEngine On  -- (1)
RewriteCond %{HTTPS} on  -- (2)
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [L] - -- (3)</p>

<h1>BEGIN WordPress</h1>

<p><IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index&#46;php$ - [L]  --- (4)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule></p>

<h1>END WordPress</h1>

<p>

(1), (2), (3)
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [L]

の説明は下記のサイトがとても分かりやすい。
» トーハム紀行: mod_rewriteでディレクトリ別にSSLのON/OFFを切り替える

(4) ドキュメンルート直下のindex.htmlはリライトしない。

リンク

» .htaccess – Rewrite

[1] mod_rewriteはApacheの設定ファイルhttpd.confに記述してもよいが本記事はhtaccessを使うことを前提とする。
[2] mod_rewriteはApacheのモジュールなのでインストールされていない場合やされていてもhtaccessを使用できない場合はパーマリンクを変更できない。
[3] RewriteCondはRewrite Conditionの略。


Viewing all articles
Browse latest Browse all 5

Trending Articles