Regex 允许特定文件在https上运行

Regex 允许特定文件在https上运行,regex,.htaccess,http,https,Regex,.htaccess,Http,Https,我在服务器上设置了SSL,但我几乎不使用它做任何事情,因此我只是通过.htaccess将所有https://重定向到http://。最近,我为我的Facebook粉丝页面创建了一个小应用程序,但遇到了几个问题,因为Facebook不再允许http:// 问题: 如何让一个静态HTML文件以https://运行,而保持其余设置不变 我目前在我的.htaccess中使用的内容如下 <IfModule mod_rewrite.c> RewriteEngine On RewriteBas

我在服务器上设置了SSL,但我几乎不使用它做任何事情,因此我只是通过
.htaccess
将所有
https://
重定向到
http://
。最近,我为我的Facebook粉丝页面创建了一个小应用程序,但遇到了几个问题,因为Facebook不再允许
http://

问题:

如何让一个静态HTML文件以
https://
运行,而保持其余设置不变

我目前在我的
.htaccess
中使用的内容如下

<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /

 RewriteCond %{HTTPS} on [OR]
 RewriteCond %{HTTP:X-Forwarded-Proto} https [OR]
 RewriteCond %{SERVER_PORT} ^443$
 RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-l
 RewriteRule ^(.*)$ index.php/$1 [QSA,L,NC]

</IfModule>  

重新启动发动机
重写基/
在[或]上重写cond%{HTTPS}
RewriteCond%{HTTP:X-Forwarded-Proto}https[或]
重写cond%{SERVER_PORT}^443$
重写规则^(.*)$http://%{http_HOST}%{REQUEST_URI}[L,R=301,NE]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-L
重写规则^(.*)$index.php/$1[QSA,L,NC]

在包含所有条件的第一个块中,添加一个条件,以便排除您的应用程序。例如:

RewriteCond %{REQUEST_URI} !facebook-app\.html [OR]

对于
您的应用程序名称
,输入一些特定的内容,这些内容只会出现在您要从重写中排除的应用程序的url中。该名称在url中出现的早或晚并不重要,只需在条件中替换即可。

你有什么问题?真正的问题是文件根本无法在facebook上打开。IFrame基本上是空的。有错误吗?SSL证书是自签名的吗?你在Firefox上工作吗?也要读不,一点也不,这份证书不是自己签字的。我试过了,它可以在firefox上运行,但在Chrome、Opera和其他浏览器上不起作用。我可以向你发送我的Facebook应用程序的链接。我传递到Facebook的url是,所以我应该在那里完整保存它吗?谢谢你在除Chrome之外的所有浏览器上都这么做。iFrame仍然没有显示,证书也在抱怨,但我认为这与我的html文件本身的内容有关,因此需要了解到底。很高兴听到它的帮助,Alex。如果浏览器的行为不同,您可以确定它与Apache无关。许多浏览器都有一个重定向缓存,因此如果以前是
301
重定向(永久),那么浏览器会自动重定向您的请求,甚至不会以这种方式要求服务器更快。最好清除缓存等。如果我可以做其他事情,请告诉我。:)当然,我确实这么做了,但那个愚蠢的chrome总是让我头疼不已:)顺便问一下,如何将文件夹添加到规则中,以保存也必须通过https的图像:/?