网址为:
http://example.com/seller/samsung
http://example.com/seller/samsung/
我对这些类型的网址的.htaccess规则如下:
RewriteRule ^seller/[^/]+/(.*)$ ./$1
如何让这两个网址转到同一页面?
答案 0 :(得分:2)
您可以强制在网址末尾显示一个尾部斜杠。您可以在.htaccess
中使用以下内容:
RewriteCond %{REQUEST_URI} !(/$|\.)
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L]
在测试之前,请确保清除缓存。
编辑:
RewriteCond %{REQUEST_URI} /+[^\.]+$
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]
以上是做什么的?因此条件会抓取您的目录,例如/samsung
,并检查其末尾是否有/
。如果没有,它将抓取URL末尾的目录(再次/samsung
并向其添加/
。它将使用301
重定向执行此操作并将离开你/samsung/
。
至于L
标志(取自官方文件):
[L]标志使mod_rewrite停止处理规则集。在 大多数情况下,这意味着如果规则匹配,则没有进一步的规则 将被处理。这对应于Perl中的最后一个命令,或 C中的break命令。使用此标志指示当前 应立即应用规则而不考虑进一步的规则。