我有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
上面的文件呢?
将以下指令放置在现有规则之前,以将所有内容从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.
。这要求前面的捕获组是非贪婪的,即。(.+?)
,而不是简单地(.+)
(它将捕获尾随点)。
谢谢,它的工作原理。同时也感谢您使我对该规则有适当的了解。我是用这个答案学到的。再次谢谢你:)