1

我有以下 htaccess 规则:

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

这样做是在我的所有 URL 中插入一个斜杠字符,即:

http://localhost/advertising变成http://localhost/advertising/

现在我有一些网址,例如: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 回答