Warm tip: This article is reproduced from serverfault.com, please click

regex-如何将网站从www重定向到非www

(regex - How to redirect site from www to non-www)

发布于 2020-11-28 18:10:13

我有codeigniter项目,并且具有.htaccess以下内容:

RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]

现在,我想保留此index.php地址,因为我不想在地址栏中输入。

我有一个域example.com现在,当我尝试时,https://www.example.com它必须重定向到https://example.com

我该如何使用.htaccess上面文件呢?

Questioner
user3997016
Viewed
0
MrWhite 2020-11-29 04:44:54

将以下指令放置在现有规则之前,以将所有内容从www重定向到非www。

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

所述%1反向引用包含主机名,更少的www.前缀,从前面的CondPattern的价值(.+?)

所述REQUEST_URI服务器变量包含被请求的根目录相对(开始以斜线)URL的路径。

如果请求一个FQDN,例如,这还会删除主机名上的可选尾随点。www.example.com.这要求前面的捕获组是非贪婪的,即。(.+?),而不是简单地(.+)(它将捕获尾随点)。