apache重定向到https和TP5的隐藏index重定向

Posted

tags:

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

.htaccess文件中 http重定向到https
:
RewriteCond %SERVER_PORT !^443$
RewriteCond %REQUEST_URI !^/tz.php
RewriteRule (.*) https://%SERVER_NAME/$1 [R]

而TP5 隐藏index.php如下:
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_FILENAME !-f
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]

两个重定向如何合并呢? 如果两个都写,肯定是不行的,对这个规则不明白,不知道怎么改写。

参考技术A <IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %SERVER_PORT !^443$
RewriteRule (.*) https://%SERVER_NAME/$1 [R=301,L]
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_URI !^/tz.PHP
</IfModule>

apache 将 http 重定向到 https 而不使用 www

【中文标题】apache 将 http 重定向到 https 而不使用 www【英文标题】:apache redirect http to https without www 【发布时间】:2017-06-07 05:38:50 【问题描述】:

尝试将所有 http 和 none-www 流量重定向到 https(带或不带 www)。 使用.htaccessapache VirtualHost 文件:

虚拟主机文件

<VirtualHost *:80>
    ServerName adi-md.co.il
    ServerAlias www.adi-md.co.il

.htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %HTTPS =on
RewriteCond %HTTP_HOST ^www\. [NC,OR]
RewriteCond %HTTP_HOST ^adi-md.co.il
#RewriteRule ^ https://%SERVER_NAME%REQUEST_URI [R=301,L,NE]
#RewriteCond %HTTP_HOST ^(?:www\.)?(.*)$ [NC]
#RewriteRule (.*) https://www.%1%REQUEST_URI [L,R=301]
#RewriteCond %HTTP_HOST ^www.adi-md.co.il

选项 1

RewriteCond %HTTPS =on
RewriteCond %HTTP_HOST ^adi-md.co.il

选项 2

RewriteCond %HTTPS off
RewriteCond %HTTP_HOST ^(?:www\.)?(.*)$ [NC]
RewriteRule (.*) https://www.%1%REQUEST_URI [L,R=301]

仅输入adi-md.co.il 时,您将获得服务器的默认页面。

如何解决它,以便所有流量都重定向到 https 以及 none-www 请求??

注意: 我看过这 3 个,但它们没有提供答案(2 out 3 处理 www 到 none-www)

apache redirect http to https and www to non wwwhttp to https apache redirectionRedirect from http to https without www using .htaccess

【问题讨论】:

结帐redirect-www.org 【参考方案1】:

不带 www 将 http 重定向到 https 的两个简单规则:

RewriteCond %HTTP_HOST ^www\.(.+) [NC]
RewriteRule ^ https://%1%REQUEST_URI [L,R=301]

RewriteCond %HTTPS off
RewriteRule (.*) https://%HTTP_HOST%REQUEST_URI [R=301,L]

【讨论】:

是否可以使用这些规则。但是在使用 .local 域名时忽略它们?【参考方案2】:

试试这个:

RewriteCond %HTTP_HOST ^www\. [NC,OR]
RewriteCond %HTTPS =on
RewriteRule ^ http://%SERVER_NAME%REQUEST_URI [R=301,L,NE]

这基本上首先检查您是否启用了www 并打开了HTTPs。如果有,它会将其切换回HTTP 并删除www

确保在测试之前清除缓存。

【讨论】:

不知何故这没有做这项工作...我更新了我的问题.htaccess 文件

以上是关于apache重定向到https和TP5的隐藏index重定向的主要内容,如果未能解决你的问题,请参考以下文章

Apache HTTPS 到 HTTPS 重定向

Apache:使用通配符永久重定向到 HTTPS

TP5中文件的写入路径有的会被自动重定向到首页

apache将http重定向到https,将www重定向到非www

apache 将 http 重定向到 https 而不使用 www

Apache 2.4 将本地虚拟主机重定向到 https 而不是 http