【发布时间】:2017-11-19 17:53:54
【问题描述】:
我一直在寻找这个解决方案,但在任何地方都找不到。
我有一个设置了 SSL 的网站(商店),除了在客户可以获得他们刚购买的文件的 URL 的区域外,它工作正常。
所以,我下载文件的工作 url 应该是这样的:
https://www.mywebsite.com/index.php?eddfile=123456etc
但只有在没有 HTTPS 前缀的情况下浏览文件时,这些文件才有效:
http://www.mywebsite.com/index.php?eddfile=123456etc
所以我需要的只是从这些以以下开头的 URL 中删除 https:
https://www.mywebsite.com/index.php?eddfile
并将它们重定向到相同的 URL,但没有 https 前缀,而是使用常规前缀:
http://www.mywebsite.com/index.php?eddfile
注意:这不是我在此处找到答案的常规 https 到 http(反之亦然)重定向 - 虽然这应该是一个简单的 .htaccess 重定向,但我需要确保这只发生在以下网址上如上所述开始
我试图做这样的事情:
RewriteEngine On
RewriteCond %{REQUEST_URI} eddfile
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]]
但没有成功
【问题讨论】:
-
@Marcin 这不是那个问答的副本
-
(在 Apache 上)没有干净的系统级方法可以 from
HTTPStoHTTP。如果您需要这样做,几乎可以肯定您是在尝试解决症状,而不是实际解决手头的问题。研究为什么您的网站的某些部分无法在 HTTPS 上运行并解决该问题。回到石器时代而不使用 HTTPS 是 NOT 的答案。 -
@Martin 感谢您的回复。是的,你是对的,这是解决问题的一种绝望之举。除了这些文件之外,网站的所有其余部分都在 HTTPS 上运行良好 - 如果您有任何想法,我可以如何强制这些 URL 文件在 HTTPS 上运行,那将是很棒的。我在 WordPress 上使用 Eeasy Digital Downloads 插件。谢谢
-
"文件仅在以下情况下有效" - 当您尝试通过 HTTPS 访问这些 URL 时实际发生了什么? (顺便说一句,除了重定向,你能不能简单地直接链接到 HTTP URL?大概如果 HTTP URL 有效,那么你在任何地方都没有 HTTP 到 HTTPS 的重定向?)
标签: .htaccess url redirect mod-rewrite