![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
SEO対策として、動的ページを静的ページへリダイレクトさせたいと考えています。
レンタルサーバーのため、.htaccessへ記入するしか方法はないと思っているのですが、
そもそも「静的化するってこと自体」がよく分かってないので、教えてください。
<現状>
▼URL
/hoge/index.php?id=1
▼.htaccess
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9A-Za-z]+)\.html$ details.php?id=$1 [L]
<結果>
実行すると、/hoge/1.htmlとなり、望む結果を得られるのですが、
念のためディレクトリを指定しておきたいと思い、
RewriteRule ^/hoge/([0-9A-Za-z]+)\.html$ /hoge/details.php?id=$1 [L]
としたところ、全く静的表示されなくなりました。
■質問1
なぜ、ディレクトリを指定すると静的化できないのでしょうか?
■質問2
ネットでmod_rewriteの解説ページを検索してみると、静的化の例として、
「hoge/1.html へアクセスがあった際に、index.php?id=1の結果を返す」、
と記載されてます。
「index.php?id=1へアクセスした際に、hoge/1.html の結果を返す」
ようにした方がいいと思うのですが、
これって結果的には同じことをしている、と考えてよいのでしょうか?
■質問3
例えば、「/hoge/index.php?id=1」に対して、
「index.php?id=1へアクセスした際に、hoge/1.html の結果を返す」
ようにするには、どう書けばよいのでしょうか?
No.3ベストアンサー
- 回答日時:
#1です。
「静的化」というのは技術用語じゃなくてSEO業界用語なので、厳密な意味はなくて使う人によりそれぞれと思いますが、おおむね、「QUERYSTRING(URLの ? 以降)を、ユーザから見えなくする」 ということのようです。
別の言い方をすると、「PHPやPerlなどを使い、QUERYパラメータを見てHTMLページをスクリプトでリクエスト毎に動的に生成して見せるのでなく、予め作ってあるHTMLファイルを見せているかのごとく見せかける」。毎回動的に作っていない=静的 ということ。
つまり、HTML中の A タグの hrefなどもすべて、/hoge/1.html のように変更します。
サーバー内で実際には index.php がQUERYSTRINGを処理する訳なので、サーバの入り口で /hoge/1.html を、index.php?id=1 の形式に変換してPHPを起動してやる必要があります。
やることは2つで、
1) HTML生成しているスクリプトの a href= の部分の作成部分を修正して、<a href="index.php?id=1"> とかを作成している部分を、<a href="1.html"> とかを作成するようにする
2) .htaccess で、rewrite 機能を使って、1.html 等を index.php?id=1 等に書き換えるようにする
ありがとうございました!
ものすごく勘違いしていたことがよく分かりました…。
丁寧に解説していただいたので、とても分かりやすかったです!
No.2
- 回答日時:
■質問1
RewriteRule ^/hoge/([0-9A-Za-z]+)\.html$ /hoge/details.php?id=$1 [L]
では動作しません。
htaccessのルールを無視した書き方では動作しません。
Rフラグなしの場合は相対パス。
参考URL:http://xn--u8jxb9ib9150b2px.jp/htaccess/rewritec …
No.1
- 回答日時:
勘違いしてらっしゃるようです。
mod_rewriteで何もしないと、index.php?id=1のURLへブラウザでアクセスすると、サーバのindex.phpが起動されてid=1がわたる
ですよね。それを、
hoge/1.htmlのURLへブラウザでアクセスすると、サーバのindex.phpが起動されてid=1がわたる
ようにしたいのですよね?
それを短く書くと
>「hoge/1.html へアクセスがあった際に、index.php?id=1の結果を返す」、
ということです。
質問1
.htaccessを hoge/.htaccess に置いているのであれば、URL中の/hogeは除去されてからmod_rewriteで処理され、処理後に再度付加されます。
この回答への補足
>勘違いしてらっしゃるようです。
根本的に勘違いしていたようなので、追加で教えてください。
「静的化する」というのは、
「index.php?id=1のURLへブラウザでアクセスすると、サーバのindex.phpが起動されてid=1がわたる」という処理自体を変えるのではなくて、
上記の処理+さらに下記のような別の処理も走らせる、ということなのでしょうか?
「hoge/1.htmlのURLへブラウザでアクセスすると、サーバのindex.phpが起動されてid=1がわたる」
つまり、最終的には、「index.php?id=1」へアクセスしたら、自動的に「hoge/1.html」へ切り替わるのではなく、
「index.php?id=1」(動的url)でもアクセスできるし、「hoge/1.html」(静的url)でもアクセスできる状態になる、ということを意味しているのでしょうか?
言い換えると、例えば、既存で動的にサイトを構築している場合、動的にリンクを生成している部分については、リンクの張替えをしないと、静的にならない、みたいな理解で、合ってますでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- PHP PHPを使って、別サイトの一部を取得して表示したいのです。。 1 2023/01/18 21:45
- その他(プログラミング・Web制作) .htaccessファイルの修正がこれで問題ないかどうか 1 2022/04/21 08:42
- HTML・CSS 全部のアクセスを指定したページに転送させたい 2 2022/06/28 16:33
- JavaScript Javascript初心者|jQueryの.val()で値を取得し複数の要素を連結させる方法知りたい 2 2022/06/02 12:06
- JavaScript JavaScriptで「〇以上▲まで」の書き方 1 2022/07/20 14:44
- Windows 10 バッチファイルの記述法とルールについてアドバイスをお願いいたします。 1 2022/04/13 10:50
- JavaScript ifreamをリロードしたい 1 2022/05/03 16:15
- C言語・C++・C# プログラミングのペーパーテスト 実行結果を表示せよ #include <stdio.h> int h 1 2022/07/09 15:27
- WordPress(ワードプレス) httpからhttpsへのリダイレクト設定について 2 2022/04/17 09:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
php セレクトボックス 分岐 ...
-
onedrive にexcelファイルをア...
-
バッチを用いたフォルダの自動移動
-
MIB取得について
-
csvファイルの読込みとソート
-
$_SESSION 有効期限をブラウザ...
-
one drive のアップロード失敗...
-
PHPのif文でその処理を途中で抜...
-
VBSの「MsgBox」について
-
存在しないメールアドレスかど...
-
URLの変わらないページをPHPで...
-
imgタグでのphpの呼び出しについて
-
$_SERVER と $_ENV の違い
-
HYのAM11:00のラップの部分の歌...
-
phpでクラスのメソッドで同名の...
-
LinuxでのPHP、Configure Comma...
-
FTPでのファイルとディレクトリ...
-
絶対パス?絶対アドレス?意味...
-
PHPExcel処理速度が遅い
-
Illustratorで文字と画像を流し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
centos6のlogにscript not foun...
-
正規表現を使い、URLで条件分岐...
-
「旭日中綬賞 」とはどんな賞で...
-
inet コントロールを用いてHTML...
-
htmlの書き換え
-
階層が違う場合の絶対パス相対...
-
文字化けで混乱中です...
-
数値から文字列へ変換後の先頭...
-
厚い本を開きっぱなしにしてお...
-
九州各地の美味しいものをお取...
-
htmlをphpにするにあたってデメ...
-
php セレクトボックス 分岐 ...
-
これを作成するにはPHP?CGI...
-
ASPソースコードをPHPソースコ...
-
PHPで作るフレーム、どんな風に...
-
phpの階層が変わると上手く読み...
-
拡張子htmlでphpが動作するフォ...
-
mod_rewriteでQUERYパラメータ...
-
青森県産のカルヴァドス
-
移動元のURLを変数に取りたい
おすすめ情報