htaccess help, need to force www, https, and remove index.php

左心房为你撑大大i 提交于 2019-12-03 07:35:59

问题


I have a rewrite in my htaccess file that removes index.php from the url

RewriteEngine on
RewriteCond $1 !^(images|media|system|themes|_css|_js|favicon\.ico|robots\.txt|cert\.html|index\.php) [NC]
RewriteRule ^(.*)$ /index.php/$1 [L]

In addition to this, I want to force the www and https for any request that does not have either.

So ultimately all urls should look like this: https://www.example.com/whatever/something/; and for SEO purposes, if a url misses the mark, it should 301 redirect to it's correct version, for example:

http://example.com/about/
301 redirect to
https://www.example.com/about/

Would love some help accomplishing that, thanks!


回答1:


Force WWW:

RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L] # include 's' here to force ssl in addition to www

Force SSL:

RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

Remove "index.php":

RewriteCond %{THE_REQUEST} /index.php HTTP
RewriteRule (.*)index.php$ /$1 [R=301,L]


来源:https://stackoverflow.com/questions/6847649/htaccess-help-need-to-force-www-https-and-remove-index-php

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!