ホームページ作成について質問です。

PHPによる動的ページ
~~/detail2.php?id=7830
を静的ページの
detail2\-7830.html
のようにリライトさせたいのですが、「.htaccess」に下記を記載してサーバーにアップするすとエラー500で「Internal Server Error」となりページが表示されなくなります。
どこかおかしいとこがあるのでしょうか。

Options +FollowSymLinks
RewriteEngine on
RewriteRule detail2\-(.*)\.html$ detail2.php?id=$1

どうぞご教授よろしくお願いします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2011/12/12 11:58:57
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:satoxu No.1

回答回数94ベストアンサー獲得回数14

ポイント50pt

RewiteEngine on の o を大文字にして

RewriteEngine On

で直るかもしれません。そうでない場合には

  • サーバー側で FollowSymLinks が禁止されている
  • mod_rewite が有効になっていない

のどちらかだと思います。.htaccess を下記のようにしてみてください。

Options +FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule detail2\-(.*)\.html$ detail2.php?id=$1
</IfModule>

この状態でエラーが出なければ、

  • FollowSymLinksは設定可能
  • mod_rewrite が使えない

状態です。

エラーが出た場合には Options FollowSymLinks を削除してみてください。エラーが出なくなったら

  • FollowSymLinks が使えない

ということになります。

どちらも使えることが分かっている場合、

  • RewriteBase を設定してみる

とよいかもしれません。

id:numb08

記載し忘れていましたが、さくらサーバーなので「Options +FollowSymLinks」はいらないみたいです。いろいろ調べた結果
RewriteEngine On
RewriteRule detail2\-(.*)\.html$ detail2.php?id=$1
のみでいけるはずなのですがだめでした。ご意見ありがとうございました。

2011/12/11 10:48:13

その他の回答1件)

id:satoxu No.1

回答回数94ベストアンサー獲得回数14ここでベストアンサー

ポイント50pt

RewiteEngine on の o を大文字にして

RewriteEngine On

で直るかもしれません。そうでない場合には

  • サーバー側で FollowSymLinks が禁止されている
  • mod_rewite が有効になっていない

のどちらかだと思います。.htaccess を下記のようにしてみてください。

Options +FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule detail2\-(.*)\.html$ detail2.php?id=$1
</IfModule>

この状態でエラーが出なければ、

  • FollowSymLinksは設定可能
  • mod_rewrite が使えない

状態です。

エラーが出た場合には Options FollowSymLinks を削除してみてください。エラーが出なくなったら

  • FollowSymLinks が使えない

ということになります。

どちらも使えることが分かっている場合、

  • RewriteBase を設定してみる

とよいかもしれません。

id:numb08

記載し忘れていましたが、さくらサーバーなので「Options +FollowSymLinks」はいらないみたいです。いろいろ調べた結果
RewriteEngine On
RewriteRule detail2\-(.*)\.html$ detail2.php?id=$1
のみでいけるはずなのですがだめでした。ご意見ありがとうございました。

2011/12/11 10:48:13
id:kodairabase No.2

回答回数661ベストアンサー獲得回数80

ポイント50pt

いずれかを試してみてください。

1.RewriteRuleを絶対パス指定で記述する。

Options +FollowSymLinks
RewriteEngine On
RewriteRule detail2\-(.*)\.html$ /絶対パス/detail2.php?id=$1

2.RewriteRuleをURL指定で記述する。

Options +FollowSymLinks
RewriteEngine On
RewriteRule detail2\-(.*)\.html$ http://ドメイン名/フルパス/detail2.php?id=$1
id:numb08

どちらもだめでした。もう少し調べてみます。ご意見ありがとうございました。

2011/12/11 10:51:15

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

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

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

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

回答リクエストを送信したユーザーはいません