1

次のルールを使用して URL を書き換えようとしています。

RewriteRule ^([^/]*)$ /curation.php?id=$1 [L]

これは私が作成した .htaccess ファイルです。

 RewriteEngine On
 RewriteRule ^([^/]*)$ /curation.php?id=$1 [L]

しかし、Heroku サーバーにプッシュすると、すべてのページで 500 内部サーバー エラーが発生します。私は何を間違っていますか?

ありがとう

4

2 に答える 2

1

mod_rewrite がロードされていて、ルールがドキュメント ルートの htaccess ファイルにある場合。あなたが持っているルールは、無限ループを引き起こしています。それを防ぐには、条件を 1 つまたは 2 つ追加する必要があります。

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/curation\.php
RewriteRule ^([^/]*)$ /curation.php?id=$1 [L]

または

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]*)$ /curation.php?id=$1 [L]
于 2013-09-11T17:06:01.837 に答える
1

主な問題はルールを書き直すことだと思います

次のようなものを試してください:

<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteRule ^([^/]+) index.php?id=$1 [L]
</IfModule>
于 2013-09-11T15:13:01.693 に答える