将 http 重定向到 https,将 www 重定向到非 www,并删除一次重定向中的最后一个斜杠
Redirect http to https, www to non-www and remove last slash in one redirect
是否可以将 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]
而且我不知道如何添加到这个重定向中删除最后一个斜杠。
您可以将此代码用于单个重定向来处理所有 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]
是否可以将 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]
而且我不知道如何添加到这个重定向中删除最后一个斜杠。
您可以将此代码用于单个重定向来处理所有 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]