PHPで静的ページ見せる方法について
PHPでmod_rewrite(静的ページに見せる方法)について教えてください。
PHPで生成された動的ページを静的ページにしたく思い、「.htaccess」ファイルを使用し、
mod_rewriteを書き込んでいますがURL書き換えられず困っています。
どうかご教授お願いいたします。
以下「.htaccess」の内容と環境、実験状況です。
やりたいこと。
トップのURL http://○○○.net/
動的のURL http://○○○.net/detail/index.php?id=△
こうしたい http://○○○.net/detai/△.html
※○○○の部分はURLです。△は数字でページによって変動します。
「.htaccess」の中身
------------------------------------------------------------
1行目 Options +FollowSymLinks
2行目 RewriteEngine on
3行目 RewriteCond %{HTTP_HOST} ^www.○○○\.net
4行目 RewriteRule ^(.*)$ http://○○○.net/$1 [R=301,L]
5行目 Options +ExecCGI
6行目 AddHandler cgi-script .cgi
7行目 AddHandler cgi-script .pl
8行目 Options +FollowSymLinks
9行目 RewriteEngine on
10行目 RewriteCond %{HTTP_HOST} ^www.○○○\.net
11行目 RewriteRule ^/detail/([0-9A-Za-z]+)\.html$ /detail/index.php?id=$1 [L]
------------------------------------------------------------
サーバーはレンタルサーバーのロケットネットです。
最初の4行はWWWなしのURL統一のために書き込んでいます。
次の3行(5~6行目)はロケットネットではcgiを使用するために必要なものということでしたので
書き込んでいます。
8~9行目からが静的ページに見せたいがために書き込んだ内容です。
サイトのディレクトリ構造は以下の通りです。
index.php (第1階層)
detailフォルダ (第1階層)
└ index.php(第2階層)
第1階層のindex.phpには以下のような記述がしてあります。(GET)
<p><a href="/detail/index.php?id=<?=$line[0]?>">・<?=$line[1]?></a></p>
第2階層のindex.phpには以下のような記述がしてあります。
$ID=$_GET['id'];
制作者のPHPレベル
Lv3
Next Level あと56くらぃ
(はじめたばかりの初心者です)
上記のような「.htaccess」の中身ですと、URLは特に変更なく、
http://○○○.net/detail/index.php?id=△のままです。
wwwなしの統一はできています。cgiは普通に使えてます。
ロケットネット側に一度お問い合わせしたところ、
以下のような内容でできます。と返答がきました。
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/sample/(.*)$ /shop/sample/$1
できませんでした…
他に以下のような感じのものをためしてみました。
RewriteRule部分を
RewriteRule ^/detail/(.*)$ /detail/index.php?id=$1
や
RewriteRule ^http://○○○.net/detail/(.*)$ http://○○○.net/detail/index.php?id=$1
フルパスにしてみたり…
RewriteRule ^(.*)$ index.php?id=$1
別に「.htaccess」ファイルを作り「detail」フォルダに入れてみたり…
できませんでした…
もう何がいけないのかぜんぜんわかりません…
こういうところに書き込むのは初めてですが、親身にしていただけると幸いです。
ご教授のほどどうぞよろしくお願いいたします。
お礼
遅くなってしまい申し訳ありませんでした。 販売元へ連絡したら売っている小売店を紹介してくれるということで ついこの間、念願のこの商品を買うことができました。 本当にありがとうございました。