お名前.comの共用サーバでRewriteRuleを使う方法
2024/01/12
以前メモした「日本語込みのURLをRewriteRuleで書き換える」というものを、お名前.comの共用サーバに入れたかった。VPSで動作確認したhtaccessファイルを共用サーバに入れても動かなかった。
まず、やりたい事と動かない書き方と動いた書き方をメモ。
■やりたい事
「http://hoge.com/あいうえお/」というURLを叩いた際に「http://hoge.com/index.php?param=あいうえお」を叩いたことにさせたい。
■動かない例(htaccess)
RewriteEngine On RewriteRule (.+)/$ index.php?param=$1
■動いた例(htaccess)
RewriteEngine On RewriteBase / RewriteCond $1 !^(\/|index\.php) RewriteRule ^(.*)$ index.php?param=$1 [QSA,L]
※2015/07/15追記
RewriteBaseの設定の有無が原因っぽい。なので、短く書くなら以下の形でいける。
RewriteEngine On RewriteBase / RewriteRule (.+)/$ index.php?param=$1
ここからは経緯。何故動かないのか分からないのでググってみると、公式内のよくある質問に、「ファイル制御に関する記述は一部ご利用いただけません」という中に「RewriteEngine On」という例がある。
■該当ページ
http://help.onamae.com/app/answers/detail/a_id/9096
ただ、共用サーバでWordPressを入れているところがあり、そちらではパーマネントリンクを変更しており、「http://hoge.com/記事名/」という形で動いていたので、何らかの解決策はありそう。
さらに調べると若干似たようなケースで解決されているブログがあった。
■参考サイト
http://agilmente.com/blog/2013/02/12/seezoo_sd/
RewriteCondというのははじめて見た。RewriteRuleの条件を設定できるらしい。ただ、良くある質問ではRewriteRuleはhtaccessで使えないみたいに書いていて、原因がよく分からない。
反省点としてVPSで使えたから共用サーバでも大丈夫だろう、みたいな考えは危険というもの。お名前.comのサーバで物を作ることも多いので、レンタルサーバー&VPSのどっちもで検証の必要有り。
関連記事
-
動的なページを静的なページにしてSEO対策
SEOの観点から見た場合、動的ページよりも静的ページの方が 良いとのこと。インデ ...
-
CPIのレンタルサーバでRewriteEngineを使用する場合の注意点
CPIのレンタルサーバで開発する案件があり、htaccessファイルを用いてRe ...
-
htaccessファイルでダイジェスト認証を行う方法
何かで調べ物をしていたときにdigest認証というものを見かけた。basic認証 ...
-
PHPにて自動でファイルを呼び出す(auto_prepend_file)
設定ファイルとかをinclude('config.php')みたいに、 いちいち ...
-
海外IPの制限
海外IPの制限を行ったので手順のメモ。 まず「サーバー立てたらすぐ攻撃が来る」と ...