人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

php初心者です。
http://exam.su-jine.com/mod_rewrite/mod/rewrite.html
を参考に動的ページを静的ページにみせる手法を試してみましたがうまくいきません。
http://www.aaa.com/g_topics/index_g.php?t=5
こちらを静的にする方法をお教え頂ければ幸いです。






●質問者: kazuhiko11
●カテゴリ:インターネット ウェブ制作
✍キーワード:PHP 初心者
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● GEN111
●20ポイント

まず、

http://www.aaa.com/g_topics/index_g.php?t=5

をどの様にすれば静的に見えるかです。

index_g.php とか ? とかはいかにもな感じなのでとっぱらいます。「=」は「/」に置き換えたりしますが、いつも「t=」なのならこれも無くして後で付け加えてやればいいのですが、ここでは残してみます。

http://www.aaa.com/g_topics/t/5

という URL でアクセスできるようにすることになりました。


ここで

http://www.aaa.com/g_topics/index_g.php?t=5

http://www.aaa.com/g_topics/t/5

に変換するように .htaccess を編集します。

DirectoryIndex index_g.php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.+)/(.+) index_g.php?$1=$2

条件によってはもっと難しくなりますが、とりあえず。

これで $_GET['t'] に 5 が入るはず。

ただし、サーバーで mod_rewrite が有効になっていなければ使えません。


Apache module mod_rewrite

◎質問者からの返答

初心者にご丁寧なご回答ありがとうございます。

早速そのままコピペしてアップロードしてみましたが、

http://www.aaa.com/g_topics/index_g.php?t=5

のURLがそのまま表記され、

403エラー

Forbidden

You don't have permission to access /g_topics/index_g.php on this server.

となってしまいました。

>サーバーで mod_rewrite が有効になっていなければ使えません。

利用できないサーバーなのでしょうか?

ちなみにサーバーはCPIというサーバーなのですが;;


2 ● V-C
●20ポイント

RewriteEngine on

RewriteRule ^/g_topics/([0-9]+)\.html$ /g_topics/index_g.php?t=$1

http://www.aaa.com/g_topics/5.html

にアクセスしてみてください。

◎質問者からの返答

ご回答ありがとうございます。

上記同様の結果になってしまいます;;

いかんせん初心者なもので原因が分からず困っております。

解決策を頂ければ幸いです。


3 ● V-C
●20ポイント

CPIというレンタルサーバはこちらの会社でしょうか。

http://www.cpi.ad.jp/index.html

機能一覧を見る限り「mod_rewrite」は使えるようです。

https://202.133.121.3/service/server/list/print.html

>403エラー

>Forbidden

>You don't have permission to access /g_topics/index_>g.php on this server.

のエラーが表示されるのでしたら、まず

http://www.aaa.com/g_topics/index_g.php?t=5

にアクセスでき、正しく表示できるか確認してください。パーミッションの設定等に誤りはないでしょうか?

◎質問者からの返答

403Forbiddenとなります。

パーミッションは644ですが、777にしても同様の結果となってしまいました。


4 ● tokyosmash
●20ポイント

以前私も同じような症状が出ました。

おそらくmod_rewriteが有効になっていないんだと思います。

つまりサーバーの設定がうまくいっていないんだと。

とりあえずApacheのerrorログを見てみてください。

http://www.atmarkit.co.jp/flinux/rensai/apache13/apache13a.html

ここに「mod_rewriteが有効になってません」という旨のログが残っている可能性が高いです。

その場合はPHPの設定ファイル(php.ini)で有効にさせる必要があります。

それから、コメント欄を開放して頂ければ今後そちらで回答します。

参考になれば。

◎質問者からの返答

その場合はPHPの設定ファイル(php.ini)で有効にさせる必要があります。

>設定自体は業者にお願いしてあったので、その辺りの具体的な手法をご教授頂ければ幸いです。


5 ● ctrl-v
●20ポイント

CPIサーバのオンラインヘルプです。

PHPを使用する初期設定はお済みでしょうか?

PHPは、.htaccessファイルを設置し、PHPのバージョンを指定することで動作できます。

メモ帳などのテキストエディタを起動します。


下記の記述(右側)をコピー&ペーストします。

PHP 4.4.2 の場合 AddHandler x-httpd-php442 .php

PHP 4.4.1 の場合 AddHandler x-httpd-php441 .php

PHP 4.3.11の場合 AddHandler x-httpd-php4311 .php

PHP 5.0.4 の場合 AddHandler x-httpd-php504 .php


【htaccess.txt】という名称で保存します。

※本来の名称は.htaccessですが、Windowsでは冒頭にドットのあるファイルを保存できないため、一度【htaccess.txt】という名称で保存します。


htaccess.txtをサーバーの任意のディレクトリにアップロードします。


アップロードしたら、名称を【htaccess.txt】から【.htaccess】に変更します。

スペルミスなどで名称を間違えると動作しませんので、ご注意ください。


実際にアクセスして動作検証を行います。

この方法を応用すると、例えば/htmlディレクトリ(ドキュメントルート直下)にPHP 5.0.4で動作する.htaccessファイルを設置して、特定のディレクトリにPHP4.3.11で動作する.htaccessファイルを設置すると、サイト全体ではPHP 5.0.4で動作し、特定のディレクトリ以下はPHP 4.3.11で動作するなどバージョンの指定が可能になります。

http://2007.document.secure.ne.jp/tools/php/php.php#3

◎質問者からの返答

PHPの設定は完了していると思われます。

でなければ

http://www.aaa.com/g_topics/index_g.php?t=5

自体が表示されないと思いますので

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ