.htaccess https和http相结合。htaccess

.htaccess https和http相结合。htaccess,.htaccess,http,https,.htaccess,Http,Https,我有以下问题 我有一个网站,对于目录/members和/admin,我有一个.htaccess,它强制这些URL转到https:// 所有其他URL都被强制转到正常的https:// 现在,对于https://的/members,我在页面中引用了导入到页面中的/js/script.js,但是当页面以https显示时,当然这个目录/js被强制为普通http://目录:// 如果Internet Explorer用户希望在安全页面中查看非安全内容,则会显示一个弹出窗口,如果他们单击“是”,则可以。如

我有以下问题

我有一个网站,对于目录/members和/admin,我有一个.htaccess,它强制这些URL转到https:// 所有其他URL都被强制转到正常的https://

现在,对于https://的/members,我在页面中引用了导入到页面中的/js/script.js,但是当页面以https显示时,当然这个目录/js被强制为普通http://目录://

如果Internet Explorer用户希望在安全页面中查看非安全内容,则会显示一个弹出窗口,如果他们单击“是”,则可以。如果他们单击“否”,则javascript无法工作

/js用于普通的http://网站和/members安全网站。/images目录也是如此

所以我不知道如何解决这个问题。除了说/js和/images可以是https或http之外。但是我不知道如何在htaccess文件中配置它

任何帮助都将不胜感激

这是我现在使用的htaccess文件:

  #Turn SSL on everything, except members and admin
  RewriteCond %{HTTPS} =off
  RewriteCond %{REQUEST_URI}  ^(/members|/admin)
  RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

  # Turn SSL off everything, except members and admin
  RewriteCond %{HTTPS} =on
  RewriteCond %{REQUEST_URI} !^(/members|/admin)
  RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

在图像和js目录中创建自己的.htacess文件,其中包含以下内容:-

RewriteEngine off
这将关闭该文件夹中所有文件的写入


在您的html中,不要在链接上指定域,因此请指定
/js/myscript.js而不是
http://mydomain.com/js/myscript.js
通过这种方式,它将继承与他们正在查看的页面相同的协议。

在图像和js目录中创建自己的.htacess文件,其中包含以下内容:-

RewriteEngine off
这将关闭该文件夹中所有文件的写入


在您的html中,不要在链接上指定域,因此请指定
/js/myscript.js而不是
http://mydomain.com/js/myscript.js
这样,它只会继承与他们正在查看的页面相同的协议。

有很多方法。这里只有一些

第1项。在您的规则之前添加此

# do not do anything for js/css/image files
# (will affect ALL such files in ALL folders)
RewriteRule \.(css|js|jpe?g|gif|png|ico)$ - [L]
# do not do anything to any files in css/js/images folders
RewriteRule ^(css|js|images)/ - [L]
上述规则将使所有css/js/image文件(站点上的任何位置)的协议保持不变

第2项。在您的规则之前添加此

# do not do anything for js/css/image files
# (will affect ALL such files in ALL folders)
RewriteRule \.(css|js|jpe?g|gif|png|ico)$ - [L]
# do not do anything to any files in css/js/images folders
RewriteRule ^(css|js|images)/ - [L]
上述规则将使css/js/image文件夹(例如
example.com/js/main.js
example.com/images/logo.png
甚至
example.com/js/compress.php


如果你想——你可以将它们组合成一条规则(更具体地说)——但这是不必要的(在我看来)。

有很多方法。这里只是一些

第1项。在您的规则之前添加此

# do not do anything for js/css/image files
# (will affect ALL such files in ALL folders)
RewriteRule \.(css|js|jpe?g|gif|png|ico)$ - [L]
# do not do anything to any files in css/js/images folders
RewriteRule ^(css|js|images)/ - [L]
上述规则将使所有css/js/image文件(站点上的任何位置)的协议保持不变

第2项。在您的规则之前添加此

# do not do anything for js/css/image files
# (will affect ALL such files in ALL folders)
RewriteRule \.(css|js|jpe?g|gif|png|ico)$ - [L]
# do not do anything to any files in css/js/images folders
RewriteRule ^(css|js|images)/ - [L]
上述规则将使css/js/image文件夹(例如
example.com/js/main.js
example.com/images/logo.png
甚至
example.com/js/compress.php


如果你愿意的话——你可以把它们合并成一条规则(更具体地说)——但这是不必要的(从我的观点来看)。

一年前我也面临同样的问题。我终于能够自己得出结论


查看我的问题和答案

一年前,我也面临同样的问题。我终于能够自己得出结论


查看我的问题和答案

Nice!这解决了我的问题。我甚至在根文件夹中有一个.css(糟糕的设计…argh),所以我添加了文件夹和文件类型的重写规则。我很高兴,谢谢!!@StevenFilipowicz如果你有#1,你实际上不需要这两个,因为它将覆盖你网站上任何地方的此类文件(除非您的css/js/images文件夹中有其他文件扩展名,例如.php)。Uuhhh是的,您是对的!选项[L]是什么意思你有没有一个很好的改写参考教程页?这些重写规则是如此强大,但我不理解它们,并且喜欢创建和理解这些规则。再次感谢!@史蒂文菲利波维兹我不知道任何好的教程——我学会了使用尝试和错误的方法加上一些来自互联网+ Offic的例子。ial文档(对每个指令和标志都有解释):很好!这解决了我的问题。我甚至在根文件夹中有一个.css(糟糕的设计…argh),所以我添加了文件夹和文件类型的重写规则。我很高兴,谢谢!!@StevenFilipowicz如果你有#1,你实际上不需要这两个,因为它将覆盖你网站上任何地方的此类文件(除非您的css/js/images文件夹中有其他文件扩展名,例如.php)。Uuhhh是的,您是对的!选项[L]是什么意思你有没有一个很好的改写参考教程页?这些重写规则是如此强大,但我不理解它们,并且喜欢创建和理解这些规则。再次感谢!@史蒂文菲利波维兹我不知道任何好的教程——我学会了使用尝试和错误的方法加上一些来自互联网+ Offic的例子。ial文档(对每个指令和标志都有解释):谢谢!我检查了你的问题。但是LazyOne提供的解决方案是一个非常简单但有效的解决方案,一次成功。谢谢你的回答。浏览一下,希望你没有在浏览器的底部或顶部看到损坏的ssl图标!!如果ssl页面包含来自非ssl的内容,通常会显示出来,看起来不太好/安全。谢谢!我检查了你的问题。但是LazyOne提供的解决方案是一个非常简单但有效的一次性解决方案。谢谢你的回答。浏览一下,希望你没有在浏览器的底部或顶部看到损坏的ssl图标!!如果ssl页面包含来自非ssl的内容,通常会显示出来,但看起来不安全好/安全。