まったく私だけの問題なのですが、WordPress を使って東南アジアのリゾートホテル写真集にブログ機能を持たせた時からず~っと気になっていたのがパーマリンク(それぞれのページのURL)構造でして
この途中に入っている 「index.php」 を取り去りたくてしょうーがなかったのです。
が、このテのことは全くのシロウトなのでどうやったらいいのかまったくわかりませんでした。
悶々した日々を送りつつあるとき知り合いがWordPressを使いたいというのでインストールを代行したところその知り合いのWordPress管理画面のパーマリンク設定ページでは最初から 「index.php」 が入っていなくて実にスマートな表記になっていました。
思わず
な ん で だ よ ~
こういうパーマリンクを Pretty Permalinks と呼ぶらしいのですが、この日以来自分も Pretty にしたくて もうネット検索しまくり、そこでたどり着いたのが mod_rewrite というものでした。
調べていくと、通常サーバーにWordPressをインストールすると mod_rewrite というものが書かれた .htaccess というファイルが自動生成されるのらしいのですが、私が使っているファーストサーバではそれが行われていないことがわかりました。
たしかに知り合いのWordPress管理画面パーマリンク設定ページ最下段には
なんだかわからない文字列が並んでいまして、よく見ると mod_rewrite と書かれています。私のパーマリンク設定ページにはこんな表示はな~んにもありません ::(:
ここから苦悩の日々がはじまり、テストサイトであれこれ試行錯誤を繰り返し
やっと昨日 Pretty になりました
ねっ、私だけの問題でしたでしょ(笑)
いろいろ書いても仕方がないので今回重要だったキーワードをいくつかあげておきます。
- mod_rewrite
- .htaccess
- Options FollowSymLink
- 301リダイレクト
あと検索エンジンを使いキーワード 「ファーストサーバ mod_rewrite」で検索してこのサイトにたどり着いた方のために mod_rewrite 例を載せておきます。
.htaccessに以下のmod_rewriteを記述しました。
前社長が新幹線で全裸になって捕まったファーストサーバ(苦笑)でWordPressをインストールしてパーマリンクが Pretty にならないとお悩みの方、参考にしてください。
これで本当に正しいのかどうかわかりませんがいまのところ問題は起きていません。
<IfModule mod_rewrite.c>
Options FollowSymLinks
RewriteEngine On
RewriteBase /virtual/www/travel/hotels
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /travel/hotels/index.php [L]
</IfModule>(ここで必ず改行して終わること)
ついでに(まだあるのかいっ)ファーストサーバでWordPressをインストールすると文字化けしますので .htaccessに
php_flag mbstring.encoding_translation off
php_value default_charset "UTF-8″ (ここで必ず改行して終わること)
を記述する必要があります。これもかなり検索してやっとわかったことでした。
いずれにしても調べまくればどうにかなるもんですね。。。ちょっと疲れましたが
追記:2008/5/14 20:30
この
<IfModule mod_rewrite.c>
Options FollowSymLinks
RewriteEngine On
RewriteBase /virtual/www/travel/hotels
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /travel/hotels/index.php [L]
</IfModule>(ここで必ず改行して終わること)
を、こうしたり
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /virtual/www/travel/hotels
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /travel/hotels/index.php [L]
</IfModule>(ここで必ず改行して終わること)
こうしても
RewriteEngine On
RewriteBase /virtual/www/travel/hotels
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /travel/hotels/index.php [L](ここで必ず改行して終わること)
URLは書き換えられるようです。
なにぶんシロウトなので参考程度ということでお願いします。
いわゆる自己責任でお願いしますということです
ちなみに現在は知り合いのWordPress自動生成のmod_rewriteと同じような記述をしています。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /virtual/www/travel/hotels
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /travel/hotels/index.php [L]
</IfModule>(ここで必ず改行して終わること)
Yasu
2008年7月27日 @ 9:15 PM
大変参考になりました。ありがとうございます!
象支店長
2008年7月28日 @ 9:43 AM
:reply: Yasuさん
はじめまして。
この投稿が多少なりともお役に立ったようでなによりです。
苦悩中、ファーストサーバに「mod_rewrite 」について問い合わせを行ったところ
その回答は実に簡単なものでした
━━━━━━━━━━━━━━━━━━━━━━━━━━━
お問合せの件でございますが、お客様にて「.htaccess」 を設置頂き、
「.htaccess」内で mod_rewrite を利用するために必要となる記述を
行って頂く事でご利用可能かと存じます。
━━━━━━━━━━━━━━━━━━━━━━━━━━━
実に「あら、そっ」って感じであります。
ファーストサーバでは、ヘルプメニューよりまずはネット検索ですね(笑)
コメントいただきましてどうもありがとうございました。
wordpress muの編集画面が404で表示できない « wordpress log
2009年1月22日 @ 4:15 AM
[…] mod_rewriteによるパーマリンク構造変更で苦悩 ::: 東南アジアのリゾートホテ… […]
ウルトラビジネス2|ファーストサーバ【レンタルサーバー】メモ
2009年6月10日 @ 1:47 PM
[…] <IfModule mod_rewrite.c> Options FollowSymLinks RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> 参考サイト:mod_rewriteによるパーマリンク構造変更で苦悩 […]
Powershift.ne.jp
2010年2月2日 @ 9:22 AM
WordPress 2.6 のパーマリンク…
[Translate] 前回の投稿「WordPress 日本語版 2.6」で「WordPress 2.6 のパーマリンクの一部がうまく機能しない」と書きましたが、その対策がわかりましたのでお知らせいたします。詳細は色々と調べる必要がありそうですが、今のところうまく機能しているようです。ご参考まで。 概要は以下のとおりです。 サーバー上の WordPress 日本語版 を 2.5.1 から 2.6 にアップグレードしてから、パーマリンクの「日付と投稿名」などがうまく機能しなくなりました。「日付と投稿名…