我在我的电子商务网站上发现了一个问题,当您访问网站http://www.example.com时某些按钮不起作用。
http://example.com,https://example.com和https://www.example.com正常工作。
这是我在上述情况下进行的重写。
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
RewriteCond %{HTTPS_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
为了解决此无效按钮的问题,我用此代码替换了上面的代码。
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]
无法使用的按钮问题现在已经消失,但是当我尝试使用第三方从站点提取订单时,我引入了另一个问题。
当尝试发出订单时,第三方软件会收到一条错误消息,内容为:
“该输入不是有效的Base-64字符串,因为它包含非Base-64字符,两个以上的填充字符或填充字符中的非法字符。”
我认为这是一个语法问题,但是如果有更好的方法可以使这项工作奏效,那么我会不知所措。