.htaccess以/结尾重写



在my。htaccess

中有如下代码
 Options +FollowSymlinks
 RewriteEngine on
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^([wd~%.:_-]+)$ category.php?id=$1 [NC]

改变url: www.domain.com/category.php?id=uncategorized

www.domain.com/uncategorized

但是,当我以斜杠结尾转到http://www.domain.com/uncategorized/时,它说该页面不存在。有人知道我如何使它,使新的URL将工作,不管它是否以斜杠结束,以及其他类似的东西吗?

这会将不带斜杠的url重定向到带斜杠的url。

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

您可以将尾斜杠设置为可选并添加QSA标志:

 Options +FollowSymlinks
 RewriteEngine on
 # add a trailing slash
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{THE_REQUEST} s/+(.*?)[^/][?s]
 RewriteRule [^/]$ %{REQUEST_URI}/ [L,R=301]
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^([wd~%.:-]+)/?$ category.php?id=$1 [L,QSA]

最新更新