Htaccess - 从现有的重写中排除一个单词

时间:2017-01-13 09:06:27

标签: .htaccess mod-rewrite url-rewriting

我的htaccess文件中有以下内容:

# drop tags
#RewriteCond %{THE_REQUEST} (.*)designs/(.*)/?tag=shirts [NC] 
#RewriteRule .* /designs/%2/ [R=301,L]
RewriteCond %{THE_REQUEST} (.*)designs/([^?]+)\?tag=[^&]* [NC] 
RewriteRule .* /designs/%2? [R=301,L]

# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} \s/+product/search/\?tag=([^\s&]+) [NC]
RewriteRule ^ /%1/? [R=301,L,NE]

# internal forward from pretty URL to actual one
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/designs/ [NC]
RewriteRule ^([^/]+)/?$ product/search/?tag=$1 [L,QSA]

RewriteCond %{QUERY_STRING} ^search= [NC]
RewriteRule ^designs/.*$ /$0? [L,R=301,NC]

RewriteCond %{QUERY_STRING} ^mfp= [NC]
RewriteRule ^designs/ %{REQUEST_URI}? [L,NC,R=301,NE]

我的主题支持博客,但在启用它后(默认为example.com/blog/),当我点击菜单中的博客链接时,它会转到一个页面,上面写着"没有符合搜索条件的产品"。当我删除上面列出的htaccess规则时,博客页面(包含文章列表)工作正常,所以肯定是这样。

如何排除"博客"根据htaccess规则,这个问题消失了吗?

1 个答案:

答案 0 :(得分:0)

经过几个小时的修补后,我设法解决了这个问题。解决方案是:

.collect(ImmutableSet.toImmutableSet())
.collect(Maps.toImmutableEnumMap())
.collect(Sets.toImmutableEnumSet())
.collect(Tables.toTable())
.collect(ImmutableList.toImmutableList())
.collect(Multimaps.toMultimap(...))

此解决方案还处理/博客(没有尾随/)。

希望将来帮助某人。