HTACCESS重定向子文件夹置于根并强制HTTPS



我正在尝试将所有URL与子文件夹重定向到根,但也强迫HTTPS和www因此,例如,我想重定向:

example.com/shop/category/product
www.example.com/shop/category/product
example.com/SHOP/category/product
  • to

    https://www.example.com/category/product

我已经尝试了以下代码

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

但这不会重定向子文件夹,如果我将子文件夹添加为先前的规则,例如

RewriteRule ^shop/(.*)$ /$1 [R=301,NC,L]

它只是不起作用。

要指出的一件事 - 我还必须确保将任何其他对网站的请求(带有或不带子文件夹(重定向到HTTPS www版本。

任何人都可以将我指向正确的方向还是可以帮助我解决这个问题?tia

您可以将此单一规则用于此重定向您的.htaccess

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www. [NC,OR]
RewriteCond %{HTTPS} !on [OR]
RewriteCond %{REQUEST_URI} ^/shop/ [NC]
RewriteCond %{HTTP_HOST} ^(?:www.)?(.+)$ [NC]
RewriteRule ^(?:shop/)?.*$ https://www.%1/$0 [R=301,L,NC,NE]
# rest of your rules go below

确保清除浏览器缓存或使用新的浏览器进行测试。