0
我有设置以下的htaccess重写规则:重写的PayPal令牌URL
RewriteEngine On
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ /index.php?id=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/$ /index.php?id=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)$ /index.php?id=$1&sub=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/$ /index.php?id=$1&sub=$2 [L]
一切都很好,直到它处理支付宝真。贝宝返回成功,网址是这样的:
http://example.com/checkout/success?token=EC-33Y7337627092313R&PayerID=QFQHDF7LULQR8
女巫导致付款为“失败”,因为在URL中-Questionmark的 - 当与& -Ampersand取代一切都很好?
解决此问题的最佳实践/重写条件是什么?
感谢您的帮助!
备注:您可以减少您在'.htaccess'中需要的规则数量。 'RewriteRule ^([^ /] +)/?$ /index.php?id=$1 [L]'将通过'/?'覆盖尾部斜线和非尾部斜线版本。第二套规则也可以做同样的事情。 – ceejayoz
非常感谢你! – maunel