在我的客户类别页面的Virtuemart网站上,urls如下:
example.com/vm-search/level1category-cityname/level2category-cityname
or
example.com/vm-search/level1category-cityname/level2category-cityname/level3category-cityname
or
example.com/vm-search/.../-cityname/result,9-10 (digits may be any numbers from 1 to N)
对于.htaccess,我需要一个重定向规则,它将删除除最后一个城市之外的所有城市名称,如果它是url的末尾,则保留result,9-10
,即结果必须如下:
example.com/vm-search/level1category/level2category-cityname
or
example.com/vm-search/level1category/level2category/level3category-cityname
or
example.com/vm-search/level1category/level2category-cityname/result,9-10 (digits may be any numbers from 1 to N)
or
example.com/vm-search/level1category/level2category/level3category-cityname/result,9-10 (digits may be any numbers from 1 to N)
请不要把这个问题看作是stackoverflow.com/q/30298289/3208225的重复,因为它还有其他的条件
发布于 2015-05-24 17:26:01
您可以在根.htaccess中使用此规则。
RewriteRule ^(vm-search)/(?:([^-]+)-[^/]+/)+?([^/-]+-(?=[a-z])[^/]+(?:/.*)?)$ /$1/$2/$3 [L,NC,R=302]
编辑:如果您想避免多次重定向,那么使用env变量,如下所示:
RewriteRule ^(vm-search)/(?:([^-]+)-[^/]+/)+?([^/-]+-(?=[a-z])[^/]+(?:/.*)?)$ /$1/$2/$3 [NC,L,E=IS_REDIR:1]
RewriteCond %{ENV:REDIRECT_IS_REDIR} =1
RewriteRule . %{REQUEST_URI} [L,R=302]
发布于 2015-05-24 13:42:49
您可以使用以下regex来匹配和替换nothing (空字符串):
-cityname(?=.*cityname)
如下所示(检查语法):
Rewrite -cityname(?=.*cityname) [L,NC,R=302]
如果你想拥有通用关键字..。使用以下方法:
-([^\/\s]+)(?=.*-\1)
https://stackoverflow.com/questions/30423873
复制相似问题