.htaccess删除www和index.php并强制为https

时间:2018-03-31 19:02:41

标签: apache .htaccess

我有

的代码

1 - 从域中删除www

2 - 从网址末尾删除index.php

3-force user to ssl

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^www$
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301]
RewriteCond %{REQUEST_FILENAME}.php -f
ErrorDocument 404 https://example.com/404.php

每件事都没问题 但是当我在浏览器中转到www.example.com时,它会将我重定向到

https://example.com/404.php

我的代码有什么问题!?

1 个答案:

答案 0 :(得分:1)

像这样使用.htaccess

Options +FollowSymLinks
RewriteEngine On

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

RewriteRule ^index\.php(.*)$ /$1 [R,L,QSA]

ErrorDocument 404 404.php

首先删除www,如果存在,

然后重定向到https

最后删除index.php(如果存在) 别忘了

如果用户尝试http://www.example.com/index.php访问您的网站,它将重定向3次:|