1
的网址是:没有结尾的斜杠导致404,如何修复使用htaccess?
- (不工作)
http://example.com/seller/samsung
- (工程)
http://example.com/seller/samsung/
的规则的.htaccess我对这些类型的URL看起来像:
RewriteRule ^seller/[^/]+/(.*)$ ./$1
我该怎么做才能使这两个URL都进入同一页?
的网址是:没有结尾的斜杠导致404,如何修复使用htaccess?
http://example.com/seller/samsung
http://example.com/seller/samsung/
的规则的.htaccess我对这些类型的URL看起来像:
RewriteRule ^seller/[^/]+/(.*)$ ./$1
我该怎么做才能使这两个URL都进入同一页?
您可以强制在URL的末尾显示尾部斜线。你可以通过使用你的.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命令。将此标志用于ind应当立即适用当前的 规则,而不考虑进一步的规则。
对不起,但没有为我工作。在我的htaccess中使用该代码时,当我访问一个页面时,它使用2个正斜杠写入:http://example.com/seller/samsung//about.php – Carl
请参阅上面的我的编辑。 – Lag
酷,它的工作原理,但你可以添加一点解释你的代码之前,我把它标记为正确的答案?我是htaccess的新手 – Carl