Apache Mod_Rewrite强制对除一个文件以外的所有文件使用HTTP

Apache Mod_Rewrite强制对除一个文件以外的所有文件使用HTTP,apache,http,mod-rewrite,ssl,https,Apache,Http,Mod Rewrite,Ssl,Https,抱歉,如果以前有人问过这个问题,但我找不到。 我有一个文件夹,当我访问它时,它以HTTPS和HTTP两种方式加载 我希望该文件夹中的所有文件都以HTTP方式加载,只有一个文件除外。 我在HTTPS中需要的文件是:login.php,这个文件夹名为“forum”。 如果有帮助的话:文件夹中的所有文件都是*.php 我尝试了以下几点: #RewriteCond %{SERVER_PORT} !^443$ #RewriteRule ^/login.php$ - [L] #RewriteCond %{

抱歉,如果以前有人问过这个问题,但我找不到。 我有一个文件夹,当我访问它时,它以HTTPS和HTTP两种方式加载

我希望该文件夹中的所有文件都以HTTP方式加载,只有一个文件除外。 我在HTTPS中需要的文件是:login.php,这个文件夹名为“forum”。 如果有帮助的话:文件夹中的所有文件都是*.php

我尝试了以下几点:

#RewriteCond %{SERVER_PORT} !^443$
#RewriteRule ^/login.php$ - [L]

#RewriteCond %{SERVER_PORT} ^443$
#RewriteRule ^(/login.php) $ https://%{HTTP_HOST}/$1 [QSA,NC,R,L]

#RewriteCond %{SERVER_PORT} !^443$
#RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [QSA,NC,R,L]
我是一个业余爱好者,当谈到修改,所以原谅我,如果上面是完全关闭。 另外,如果你发布一个解决方案,如果你发布一个解释,我将不胜感激,这样我才能真正了解它是如何工作的

提前谢谢! 大卫

试试看:

 Options +FollowSymLinks
 RewriteEngine On


 # port 443 traffic to http://, except login.php
 RewriteCond %{SERVER_PORT} ^443$
 RewriteCond %{REQUEST_URI} !^/login\.php$ [NC]
 RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

 # port 80 traffic for login.php to https://
 RewriteCond %{SERVER_PORT} ^80$
 RewriteCond %{REQUEST_URI} ^/login\.php$ [NC]
 RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
试试这些规则:

RewriteCond %{SERVER_PORT} !=443
RewriteRule ^login\.php$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteCond %{SERVER_PORT} !=80
RewriteRule !^login\.php$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

应该假设您在“尝试”时从未对这些行进行过注释?是的,尝试时这些行没有注释。很抱歉,当我看到conf文件不起作用时,我只是在禁用它们之后将它们从conf文件中复制了出来。我现在正在执行迁移,所以我将在完成后立即尝试此操作。谢谢有些事情似乎正在发生,但并不完全有效。现在论坛仍然在HTTPS下加载,这意味着index.php会加载,但只要我点击论坛链接,就会得到一个错误,它不“存在”。如果我使用HTTP,它可以正常加载。这可能与我安装的SEO模块有关?尽管如此,SEO规则还是在这些规则之下。所以应该先读,对吗?如果你想亲自看看发生了什么:http(s)://www.redbid.com/forum/。谢谢Sam不是100%确定我的答案是正确的我很抱歉。我不知道搜索引擎优化模块。我认为我给出的重写规则应该将除了/login.php之外的任何页面的https流量重定向到http。如果您可以发布服务器错误日志,我可能会提供帮助。是的,我现在看到了,它允许我导航到论坛,但一旦我单击打开论坛,我就会发现404未找到。看起来您正在使用的论坛脚本正在创建描述性URL,可能使用了某种重写规则本身,可能存在冲突。SEO Mod是论坛脚本的依赖项吗?我已经禁用了SEO Mod,并在配置中对SEO重写规则进行了注释。尽管如此,该网站仍在加载HTTPS。但是这次没有404错误。有什么想法吗?注意:我已经在配置中禁用了所有其他mod_重写规则,以测试这种情况并确保没有冲突。干杯嗨,秋波,谢谢你的意见。但是,出现与上述解决方案相同的问题。无论是否启用SEO模块。还有其他想法吗?干杯你把这些规则放在其他规则之前还是之后?如果不是以前,那就做吧。