1

我有以下问题。

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

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

如果 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]
4

3 回答 3

3

有很多方法。这里仅仅是少数。

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]

上面的规则将保留所有 css/js/image 文件(站点上的任何位置)的协议

2号。在你的规则之前添加这个:

# do not do anything to any files in css/js/images folders
RewriteRule ^(css|js|images)/ - [L]

对于 css/js/image 文件夹中的所有文件(例如example.com/js/main.jsexample.com/images/logo.png甚至example.com/js/compress.php

如果你愿意——你可以将它们组合成一个规则(更具体地说)——但这是不必要的(从我的角度来看)。

于 2012-04-16T12:50:34.207 回答
1

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

RewriteEngine off

这将关闭对该文件夹中所有文件的写入。

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

于 2012-04-16T12:47:58.567 回答
1

一年前我遇到了同样的问题。终于可以自己得出结论了。

查看我的问题并回答htaccess(https 到 http)

于 2012-04-16T12:55:40.693 回答