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」フォルダに入れてみたり…
できませんでした…
もう何がいけないのかぜんぜんわかりません…
こういうところに書き込むのは初めてですが、親身にしていただけると幸いです。
ご教授のほどどうぞよろしくお願いいたします。
お礼
ありがとうございます。そうしてみます。