2012-11-22 174 views
-1

我使用htaccess的URL重写转变URLS这样:使用htaccess在URL末尾添加可能缺少的斜杠?

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

www.url.com/laptops/ 

我发现,当在最后的斜杠/是或不存在,则相对链接不会以相同的方式调用(css文件或图片)。

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

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

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

但是这种解决方案,如果我拿出到底,然后按回车斜线,导航仪会“改写”的确切文件夹位置FTP服务器,导致“找不到文件”错误。

预先感谢您的帮助......

回答

0

的!-f检查是否存在该文件,它并不至于我可以从你的例子告诉我们,但我想休息你的重写是好的。

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

但是在这个例子中,你给你重定向products.php?ID = 3的笔记本电脑是一个非常具体的重写和将意味着你必须做出然而每个URL上面的一个独特的重写会为您添加斜线,然后您需要对该页面进行内部重写,以将其从笔记本电脑转换为products.php?id = 3。

+0

谢谢你的快速回答。实际上,我确实在这里对所有“id”进行了特定的重写,并且每个重写都会显示不同的文件夹名称,例如www.url.com/phones/。我写的例子将在本地主机上从localhost/site/phones(删除斜杠)重写到localhost/phones /(重新添加斜杠,但文件“site”消失) – swindell