首页 > 解决方案 > 将 http 重定向到 https,将 www 重定向到非 www 并在一个重定向中删除最后一个斜杠

问题描述

是否可以将 http 重定向到 https,将 www 重定向到非 www 并在一个 htaccess 重定向中删除最后一个斜杠,并且它可以是 seo 友好的?

我有这个:

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

而且我不知道如何添加到此重定向中删除最后一个斜杠。

标签: .htaccessredirecthttpsseo

解决方案


您可以将此代码用于单个重定向以处理所有 3 种情况:

RewriteEngine On

## Unless directory, remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^ %1 [L,E=DELSLASH:1]

# perform redirect for 1. www removal, 2. trailing / removal and 3. http->https
RewriteCond %{ENV:REDIRECT_DELSLASH} =1 [OR]
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]

推荐阅读