htaccess规则删除除一个目录之外的尾部斜杠

时间:2015-09-30 20:08:58

标签: apache .htaccess mod-rewrite redirect

我知道这个问题已经在其他地方被问到了,但这些线程中的解决方案对我没用。我希望通过301重定向从我的所有网站的URL中删除尾部斜杠,但我需要此规则不适用于我的结帐页面(https://example.com/checkout/onepage/),这是一个Ajax的事情,您可以通过3个结帐步骤前进这一切都发生在一个URL上。该网址(https://example.com/checkout/onepage/)是我们在网站上使用https网址的唯一时间,我想知道这是否是问题的一部分。

我的重写规则确实删除了我的尾部斜杠,但是不允许我在结帐过程中前进。单击“下一步”按钮不会执行任何操作,最终会超时。

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

如何修复规则?

1 个答案:

答案 0 :(得分:2)

尝试此规则:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/checkout/
RewriteRule ^(.+?)/$ /$1 [L,R=301]

清除浏览器缓存后进行测试。