2015-09-30 74 views
2

我知道这个问题已经在这里的其他地方问过,但这些线程中的解决方案并没有为我工作。我想从301我的所有网站的URL重新删除尾部的斜杠,但我需要这个规则不适用于我的结帐页面(https://example.com/checkout/onepage/),这是一个Ajax的事情,你可以通过3个步骤完成所有结帐过程在一个URL上。该网址(https://example.com/checkout/onepage/)是我们在网站上唯一使用https网址的时间,我想知道这是否是问题的一部分。htaccess规则除去一个目录中的尾部斜杠

重写规则我没有删除我的尾随斜线,但不允许我通过结帐过程前进。点击“下一步”按钮什么也不做,并最终超时。

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

我该如何解决我的规则?

+0

_https网站上的网址,我想知道这是否是问题的一部分._您对https虚拟主机有'AllowOverride All'吗?您通常有两个虚拟主机,一个用于80,另一个用于443. –

回答

2

试试这个规则:

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

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

+0

否...结帐过程仍然不适用该规则。 – user2930880

+0

我无法测试您的结帐流程。我只能测试这个规则,这对我的Apache很好。如果您编辑问题并提供完整的.htaccess,则会更好。 – anubhava