使用通配符支持将非https和非www重定向到https:// www

毗湿奴

我可以实现以下目标。

https://domain.com -> https://www.domain.com
http://www.domain.com -> https://www.domain.com
http://domain.com -> https://www.domain.com

一切都很好...但是另外,我希望通配符能够工作

https://domain.com/randomblabla.html -> https://www.domain.com/randomblabla.html

不存在randomblabla.html的地方...它只是显示index.php的内容...在我设置https重定向之前,它工作正常..但是现在将其重定向到https://www.domain.com/index.php

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule (.*)(\/?)$ index.php [QSA,NC,L]



RewriteEngine On

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.domain.com%{REQUEST_URI} [R=301,L,NE]

# Remove Trailing Slashes...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} \s(.+?)/+[?\s]
RewriteRule ^(.+?)/$ /$1 [R=301,L,NE]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
阿努巴瓦

问题是顶部控制器之类的前端控制器的冗余存在。试试下面的代码:

RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.domain.com%{REQUEST_URI} [R=301,L,NE]

# Remove Trailing Slashes...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} \s(.+?)/+[?\s]
RewriteRule ^(.+?)/$ /$1 [R=301,L,NE]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

请确保在新的浏览器中进行测试,以避免使用旧的301缓存。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

nginx将非www重定向到www和https

NGINX:将非www https重定向到https:// www

如何使用用于HTTPS和Nginx的certbot将www重定向到非www

如何使用htaccess将www和非www重定向到特定域的https

Nginx重定向/重写:www到非www和https

如何将www重定向到非www https?

Nginx:将非www重定向到www https

将Nginx HTTP / HTTPS www重定向到非www

htaccess将301 https www重定向到非www

重定向www。到非www并使用.htaccess将所有http重定向到https

将任何域从非 www 重定向到 www 和 HTTPS,无需双重重定向

将非www重定向为http和https的www

将www和非www都重定向到https non www

将非www和www http请求重定向到https:// www

将非www(http)和www(http)重定向到https:// www

如何使用.htaccess将HTTPS非www重定向到HTTPS www?

NGINX 将 http 重定向到 https 和 www。到非 www

Nginx将非www重定向到domain.com和子域的www和https

将 www https 站点重定向到非 www https 导致 nginx 中的重定向过多

IIS将非www重定向到www并将HTTP重定向到https

如何通过web.config将http重定向到https和www重定向到非www?

www不会通过https重定向到非www

Nginx-(http / https)非www到www重定向

.htaccess http www 或非 www 重定向到 https

htaccess将多个域(https和http,www和非www)重定向到一个https域

将所有非www HTTPS请求重定向到www HTTPS

Nginx 301将http(裸和www)重定向到https www,并将通配符子域重定向到https

将非WWW重定向到WWW

将www重定向到非www