php初心者です。

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



回答の条件
  • URL必須
  • 1人3回まで
  • 登録:2007/05/07 16:05:34
  • 終了:2007/05/14 16:10:03

回答(5件)

id:GEN111 No.1

GEN111回答回数472ベストアンサー獲得回数582007/05/07 17:00:49

ポイント20pt

まず、

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

id:kazuhiko11

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

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

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というサーバーなのですが;;

2007/05/07 17:27:13
id:V-C No.2

V-C回答回数22ベストアンサー獲得回数22007/05/07 17:01:57

ポイント20pt

RewriteEngine on

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

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

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

id:kazuhiko11

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

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

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

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

2007/05/07 22:57:56
id:V-C No.3

V-C回答回数22ベストアンサー獲得回数22007/05/08 00:41:09

ポイント20pt

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

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

id:kazuhiko11

403Forbiddenとなります。

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

2007/05/08 12:35:48
id:tokyosmash No.4

tokyosmash回答回数100ベストアンサー獲得回数62007/05/08 20:39:28

ポイント20pt

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

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

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

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

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

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

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

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

参考になれば。

id:kazuhiko11

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

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

2007/05/09 17:21:55
id:ctrl-v No.5

ctrl-v回答回数289ベストアンサー獲得回数152007/05/08 20:55:45

ポイント20pt

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

id:kazuhiko11

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

でなければ

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

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

2007/05/09 17:20:27

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません