如何将 http 重定向到 https 加上将 index.html 重定向到

我在 .htaccess 中有一个将 http 重定向到 https 的代码,但我还想添加一个将index.html页面重定向到另一个 html 页面的代码。有没有办法在.htaccess. 下面提供的代码。


http转https代码


RewriteEngine On

RewriteCond %{HTTP:X-Forwarded-Proto} =http

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

index.html 到另一个html页面代码


RewriteEngine On

RewriteCond %{HTTP_HOST} ^example.com$

RewriteRule ^$ http://example.com/index.php [L,R=301]


慕丝7291255
浏览 200回答 2
2回答

MMMHUHU

RewriteEngine OnRewriteCond %{HTTP_HOST} ^example.com$RewriteRule ^$ http://example.com/index.php [L,R=301]是的,这是一个外部重定向,从 重定向http(s)://example.com/到http://example.com/index.php。但是,您正在重定向到 HTTP,而不是 HTTPS,并且您正在重定向到index.php,而您index.html在问题中已说明。似乎不需要检查请求的主机名,除非您有多个域并且特别只想重定向一个实例。除非您计划实施 HSTS,否则请在您的常规 HTTP 到 HTTPS 重定向之前包含此重定向,并在您的 HTTP 到 HTTPS 重定向中包含规范主机名。例如:RewriteEngine On# Redirect / or /index.html TO /dir/index.html (HTTPS)RewriteRule ^(index\.html)?$ https://example.com/dir/index.html [R=302,L]# Redirect HTTP to HTTPSRewriteCond %{HTTP:X-Forwarded-Proto} =httpRewriteRule ^ https://example.com%{REQUEST_URI} [R=302,L]但是,在阅读您的链接问题后,外部“重定向”可能不是您问题的正确解决方案。当您应该链接到子目录中的文件时,听起来您可能“错误地”链接到文档根目录中的文件?(真的,如果是这种情况,您应该更正您的内部链接……)但是,一个可行的解决方案可能是在内部将请求重写为所需的 URL 路径,或者DirectoryIndex如果您链接到文档根目录,则更改 。这对用户/客户端是完全隐藏的——用户只能看到 URL A,但实际上您在提供 URL B。但这取决于您网站的结构。另一方面,外部重定向实际上将用户/浏览器发送到 URL B。他们同时看到 URL A(他们点击的链接)和 URL B(他们被重定向到的 URL)——就像搜索引擎机器人一样. 浏览器需要发出两个请求。这对用户来说可能会更慢,并且会在您的服务器上进行更多工作(不多,但仍然更多)。

繁花如伊

你想先做你的 http --> https 因为这同时适用于原始和重定向以进行安全通信。&nbsp;&nbsp;&nbsp;&nbsp;RewriteEngine&nbsp;On &nbsp;&nbsp;&nbsp;&nbsp;RewriteCond&nbsp;%{HTTPS}&nbsp;!=on &nbsp;&nbsp;&nbsp;&nbsp;RewriteRule&nbsp;^(.*)$&nbsp;https://%{HTTP_HOST}%{REQUEST_URI}&nbsp;[L,R=301,NE] &nbsp;&nbsp;&nbsp;&nbsp;Header&nbsp;always&nbsp;set&nbsp;Content-Security-Policy&nbsp;"upgrade-insecure-requests;"现在您可以将重定向应用到index.php&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<IfModule&nbsp;mod_rewrite.c> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RewriteEngine&nbsp;On &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RewriteBase&nbsp;/ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RewriteRule&nbsp;^index\.php$&nbsp;-&nbsp;[L] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RewriteCond&nbsp;%{REQUEST_FILENAME}&nbsp;-f &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RewriteCond&nbsp;%{REQUEST_FILENAME}&nbsp;-d &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RewriteRule&nbsp;.&nbsp;/index.php&nbsp;[L] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</IfModule>您可以调整-f和-d包含!和/或更改文件名类型以满足您的特定需求。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript