1

URLをクリーンアップする方法のdesiquintansチュートリアルに従いました。私の場合は www.mySite.com/detail.php?id=324 で、他のページに影響を与えることを除けばうまく機能します。

これは私の .htaccess ファイルがどのように見えるかです:

RewriteBase /
RewriteEngine on
Options All -Indexes
DirectoryIndex index.php index.html index.htm
RewriteRule ^([0-9]+)$ detail.php?id=$1
RewriteRule ^([0-9]+)/$ detail.php?id=$1

その最後の行により、パスが異なる一部のページでのリダイレクト サイクルについて Chrome が警告します。「detail.php?id=」拡張子を持つページだけに影響するべきではありませんか?

4

1 に答える 1

6

あなたの問題はあなたのオプションによるものだと思います。これを試してみてください。

Options +FollowSymLinks -MultiViews -Indexes

DirectoryIndex index.php index.html index.htm

RewriteEngine On
RewriteBase /

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

また、ルールを 1 つに分割し/?て、最後のスラッシュをオプションにするので、両方で機能するはずです。

また、既存のファイルとフォルダーをリダイレクトできないようにするための 2 つの条件があります。

ルールは、次の例のように、末尾のスラッシュの有無にかかわらず、数字で開始および終了する URI のみに影響することに注意してください。

 http://domain.com/1234/
 http://domain.com/1234
 http://domain.com/200
 http://domain.com/420/

他の URL には影響しません。

于 2013-09-08T14:03:09.873 に答える