1

次の htaccess ルールがあります。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ $1/ [L,R=301]

これにより、すべての URL に末尾のスラッシュ文字が挿入されます。つまり、次のようになります。

http://localhost/advertisingになるhttp://localhost/advertising/

現在、次のような URL がいくつかあります。http://localhost/contact.html

しかし、私の htaccess ルールはこれらの URL にもスラッシュを適用しているため、上記の URL は次のようになります。http://localhost/contact.html/

これを防ぐために、次の条件を追加しました。

RewriteCond %{REQUEST_URI} !\.(html|php)$

しかし、私はこれよりも少し賢くなりたいと思っています.ユーザーが入力した拡張子に一致する単一の式が必要です.どうすればこれを達成できますか?

4

1 に答える 1

1

これにより、末尾のスラッシュなしですべてのディレクトリが書き換えられます!

RewriteCond %{REQUEST_FILENAME}  !-f
RewriteCond %{REQUEST_URI}  !(.*)(\..{3,5}|/)$
RewriteRule ^(.*)$   $1/ [L,R=301]
于 2013-08-17T22:27:03.533 に答える