使用htaccess在URL的末尾添加可能缺少的斜杠?

时间:2012-11-22 12:42:09

标签: .htaccess url-rewriting

我正在使用htaccess进行URL重写,以这种方式转换URL:

www.url.com/product.php?id=3

www.url.com/laptops/

我发现当斜杠/到底是否存在时,相对链接的调用方式不同(css文件或图片)。

我在Apple网站上发现,如果你删除“www.apple.com/mac/”末尾的斜杠并按回车键,斜线将自动重新添加,这就是我想这样做。

我尝试了几种解决方案,例如

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/])$ /$1/ [L,R=301]

但是使用这个解决方案,如果我在最后取出斜线并按回车键,导航器将“重写”FTP服务器中的确切文件夹位置,导致“找不到文件”错误。

提前感谢您的帮助......

1 个答案:

答案 0 :(得分:0)

!-f检查文件是否存在,但是从你的例子中我不知道这个文件,但我认为其余的重写是好的。

RewriteRule ^(.*[^/])$ /$1/ [L,R=301]

然而,在你给你的例子中,你将products.php?id = 3重定向到笔记本电脑,这是一个非常具体的重写,并且意味着你必须为每个网址进行一次独特的重写,但是上面的那个会添加你的斜线为你而你需要对那个确切的页面进行内部重写,将它从笔记本电脑转换为products.php?id = 3.