从https

时间:2018-02-12 11:49:22

标签: php .htaccess

我的网站中有2个页面,其中一个保留表单,而其他页面则调用现在不支持https的API。

我希望页面的格式为https,第二个格式为HTTP。

我在htaccess文件中写了这段代码:

RewriteEngine On

RewriteCond %{SERVER_PORT} 80 
RewriteCond %{REQUEST_URI} !^/generator2.php/$ [NC]
RewriteRule ^(.*)$ https://lotterymoneyapp.com/$1 [R,L]

RewriteCond %{SERVER_PORT} !80
RewriteCond %{REQUEST_URI} ^/generator2.php/$ [NC]
RewriteRule ^(.*)$ https://lotterymoneyapp.com/$1 [R,L]

它没有做到这一点。 我也希望如果有人用https输入generator2.php文件,它会将他发送到HTTP,因为否则,页面中没有任何工作(API无效)。

接下来我该怎么办?

P.S 注册后,带有表单的主页将用户发送到generator2页面。

1 个答案:

答案 0 :(得分:0)

使用THE_REQUEST代替REQUEST_URI因为REQUEST_URI因执行其他规则而可能会发生变化。

在遵守其他规则之前,请将这些规则放在首位:

RewriteEngine On

RewriteCond %{SERVER_PORT} 80 
RewriteCond %{THE_REQUEST} !/generator\.php [NC]
RewriteRule ^ https://lotterymoneyapp.com%{REQUEST_URI} [R=301,NE,L]

RewriteCond %{SERVER_PORT} !80
RewriteCond %{THE_REQUEST} /generator\.php [NC]
RewriteRule ^ https://lotterymoneyapp.com%{REQUEST_URI} [R=301,NE,L]

# rest of your rules go below this

确保在测试或使用新浏览器之前清除浏览器缓存。