.htaccess重写为https和隐藏的子文件夹

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.htaccess重写为https和隐藏的子文件夹相关的知识,希望对你有一定的参考价值。

我需要将http://www.example.comhttp://example.com重写为https://www.example.com。另一个复杂性是这些URL不是指向索引文件,而是指向/文件夹。即https://www.example.com真正指向/ var / www / html /文件夹,而不在URL栏中显示https://www.example.com/folder

我曾经设法获得第二部分

RewriteCond %{HTTP_HOST} www.example.com [NC,OR]
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ folder/$1 [L]

我知道第一部分可以用这样的东西来实现:

RewriteCond     %{SERVER_PORT} ^80$
RewriteRule     ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

但不知何故,我不能让他们两个一起工作,因为我不熟悉htaccess。提前致谢!

答案

您可以使用单个规则添加wwwhttp -> https重定向,然后为文件夹转发重写规则:

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www. [NC,OR]
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^(?:www.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L,NE]

RewriteCond %{HTTP_HOST} ^(?:www.)?example.com$ [NC]
RewriteRule ^(?!folder/)(.*)$ folder/$1 [L,NC]

以上是关于.htaccess重写为https和隐藏的子文件夹的主要内容,如果未能解决你的问题,请参考以下文章

thinkphp url重写,我想把模块隐藏掉只显示操作名

。htaccess重写条件/规则并隐藏url参数

简单的htaccess base重写为子文件夹中的站点,链接与相对路径

在htaccess中强制将https和.html重写为.php

htaccess使用https,非www和目录尾随将两个域重写为一个域

.htaccess url 重写用于 ssl https 重定向