在URL和子文件夹上强制HTTPS重定向,以及删除WWW和.HTML

时间:2017-04-07 18:12:34

标签: php .htaccess mod-rewrite cpanel

我目前正在使用以下.htaccess配置来强制执行HTTPS协议,并删除WWW前缀。

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

但是,它不适用于子文件夹,例如。 www.abc.com/projectdirectory/index.html

有没有办法在整个网站结构中强制执行此规则?因此,如果用户手动输入到URL字段: www.abc.com/ projectdirectory /index.html www.abc.com/projectdirectory/ < strong> projectx /index.html ,它将HTTPS协议添加到URL并删除WWW。

另外,有没有办法删除.HTML? 我之前使用过这个片段,它影响了对.JS,.PHP文件的识别。

RewriteCond %{REQUEST_URI} !\.[a-zA-Z0-9]{3,4}
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*)$ $1.html

1 个答案:

答案 0 :(得分:0)

要删除.html扩展程序,您需要一个.htaccess规则,如下所示:

temporary variable

使用上述规则而不是您在此处发布的规则。

您可以在 RewriteEngine On 之后添加 RewriteBase / ,这样 .htaccess 将如下所示:

RewriteRule ^([^\.]+)$ $1.html [NC,L]