2017-06-16 105 views
2

开头的相同网址我一直在寻找此解决方案,但无法在任何地方找到它。将以https://开头的所有网址重定向到以http://

我有一个设置了SSL的网站(商店),除了在客户将获得他们刚刚购买的文件的URL的区域中工作正常。

所以,我的工作链接直接下载文件应该是这个样子:

https://www.mywebsite.com/index.php?eddfile=123456etc 

但这些文件只有当你浏览他们没有HTTPS前缀的工作:

http://www.mywebsite.com/index.php?eddfile=123456etc 

所以我需要什么只是从这些以下列URL开头的https删除https:

https://www.mywebsite.com/index.php?eddfile 

并将它们重定向到t Ø使用相同的网址,但没有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]] 

但与

没有成功
+0

可能重复的[Htaccess - HTTP to HTTPS&.HTML to /](https://stackoverflow.com/questions/34114290/htaccess-http-to-https-html-to) – Marcin

+0

@Marcin这不是一个该问答的副本 – Martin

+0

(在Apache上)从* HTTPS *到* HTTP都没有干净的系统级别的方法。如果您需要这样做,几乎可以确定您正在尝试解决症状,而不是实际解决问题。研究为什么您的网站的某些部分无法在HTTPS上工作并解决该问题。保持在石器时代,不使用HTTPS是***不是答案。 – Martin

回答

2

正如Martin在评论中所建议的,真正的解决方案是解决为什么你的HTTPS URL“不起作用”。 (?而且,为什么不直接如果“作品”链接到HTTP URL)

无论如何,回答您的具体问题...尝试靠近你.htaccess文件的顶部,而不是执行以下操作:

RewriteEngine On 
RewriteCond %{HTTPS} on 
RewriteCond %{QUERY_STRING} ^eddfile=. 
RewriteRule ^index\.php$ http://%{HTTP_HOST}%{REQUEST_URI} [R,L] 

这只是一个“临时”(302)重定向,因为这只是一个“临时”修复。

eddfile是查询字符串的一部分,而不是URL路径。查询字符串会自动传递给替代,前提是您不提供查询字符串。

既然你说HTTP URL“有效”,那么我假设你没有HTTP到HTTPS重定向?否则,您需要在此重定向中包含一个异常,以避免重定向循环。

+0

我正在使用一个插件这些网址不是单一链接,而是大量的链接 - 这些链接是为文件下载生成的独特链接。 我已经为我的网站设置了SSL,除了这些文件外它工作的很好 - 不知何故它们没有被重定向到HTTPS(而是找不到文件错误),而且一旦我手动从https中删除“s”前缀我得到的文件。 如果有一种方法我可以专门强制这些文件与eddfile查询字符串被正确地重定向到HTTPS将是非常棒的。 试过上面的代码,没有得到任何结果 – gt1987

+1

“不知何故,他们没有重定向到HTTPS(文件未找到错误获取加载,而不是)” - “找不到文件”?但是当你请求这个链接的HTTP版本时,你大概不会得到“文件未找到”错误? “如果有一种方法可以特别强制这些文件与eddfile查询字符串被正确地重定向到HTTPS,那将是非常棒的。” - 但你试图在你的问题重定向到HTTP?上面的代码什么都没做?你把它放在'.htaccess'文件的顶部吗?顺序很重要。 – MrWhite

+1

啊只是将它添加到.htaccess文件的顶部,它完美地工作。 你救了我的一天! 非常感谢 – gt1987

相关问题