我在.htaccess
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(/|\..+)$
RewriteRule ^ %{REQUEST_URI}.html [L,NC,R=301]
我要做的是将site.com/category
和site.com/category/
重定向到site.com/category.html
到目前为止,我的代码正在将/category
重定向到/category.html
,而不是/category/(Multiple choices shows up)
我想在这一行中对正则表达式做一些解释:
RewriteCond %{REQUEST_URI} !(/|\..+)$
答案 0 :(得分:0)
您可以使尾随斜杠可选:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /category/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/.]+)/?$ $1.html [L,R=301]
这个条件:
RewriteCond %{REQUEST_URI} !(/|\..+)$
是匹配请求URI,如果不包含/
或DOT加上一些文本。
但是你可以看到,根据我建议的答案,甚至不需要这样做。