的.htaccess重写条件,从HTTP重定向链接到https
问题描述:
我有很多不同的环节,没有任何逻辑规则,重定向与的.htaccess Redirect 301
的.htaccess重写条件,从HTTP重定向链接到https
的.htaccess看起来是这样的:
<IfModule mod_rewrite.c>
RewriteCond %{HTTP_HOST} ^mysyte.com
Redirect 301 /oldlink1 /newlink1
Redirect 301 /oldlink1 /newlink1
Redirect 301 /oldlink1 /newlink1
...
几天前我已经设置了https。不幸的是,https://mysyte.com/oldlink...
重定向到http://mysyte.com/newlink...
- 不是https而是http。
我做错了什么?我应该如何设置.htaccess文件重定向到https?
答
如果您要改变协议或网站,那么你必须使用一个绝对的URL:
Redirect 301 /oldlink https://example.com/newlink1
^^^^^^^^^^^^^^^^^^^
否则它只是一个“本地”重定向和你呆在同一个网站/协议内。请注意0不是mod_rewrite的一部分。这是Apache的核心指令(mod_alias的一部分),并且与mod_rewrite完全无关:http://httpd.apache.org/docs/2.4/mod/mod_alias.html#redirect
我更喜欢像/ newlink这样的相关链接,而不是像https://example.net/newlink那样绝对所以问题是关于 – Andrew
那么你卡住了。你不能做一个“本地”重定向,并期望主机或协议改变。你**有**使其成为'重定向'的绝对URL。就像我说的,重定向不是mod_rewrite的一部分,mod_rewrite语义不适用于它。 –
我不知道为什么,但当我试图直接打开链接(在地址栏中键入https://example.com/oldlink1)重定向301打开页面与http协议(http://example.com/newlink1 )。但是当我从https页面(在
Andrew