2

.htaccess でこのコードを使用してきれいな URL (contact.php?id=連絡先/何か) を作成したいのですが、それを使用すると、ブラウザーにエラー 310 - リダイレクトが多すぎますが表示されます。

Options +FollowSymlinks

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^contact/(.*)$ contact.php?id=$1 [L]

RewriteCond %{QUERY_STRING} ^id=(.*)$
RewriteRule ^contact.php$ /contact/%1? [R,L]

誰かが私を助けることができますか、何が問題なのですか? ありがとう。

4

1 に答える 1

3

あなたの問題は、contact/をcontact.phpにリダイレクトし、次にcontact.phpをcontactにリダイレクトしていることです(無限ループを参照してください?)

これを修正するには、最初のルールに別の役に立たないパラメーターを追加するだけです (別のことは、R フラグだけではなく、最後のルールで R=301 を使用する必要があることです。これは、リダイレクトが一時的ではなく永続的であることを意味しますが、それは原因ではありません任意の問題):

Options +FollowSymlinks

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^contact/(.*)$ contact.php?id=$1&r=0 [L]

RewriteCond %{QUERY_STRING} ^id=([^\&]*)$
RewriteRule ^contact.php$ /contact/%1? [R=301,L]
于 2012-08-30T15:00:11.953 に答える