.htaccess - 将 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]
而且我不知道如何添加到此重定向中删除最后一个斜杠。
解决方案
您可以将此代码用于单个重定向以处理所有 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]
推荐阅读
- oracle - ORA-00904: : oracle 中的无效标识符错误修复
- python - 在python中获取录音的x和y数据
- flutter - ClipRRect 没有剪辑它的子小部件,我做错了什么?
- vba - 向模块添加过程会取消用户表单加载/显示,必须运行两次显示用户表单才能显示
- c++ - C ++ - 将双精度向量作为元组进行迭代
- coq - 无论如何我可以在 Coq 中输出所有最短路径吗?
- mysql - 如何使 MariaDB/mySQL INSERT 插入多个表对其他数据库连接来说是原子的
- php - SQL 查询不起作用,但在 PHPMyAdmin 中有效
- android - Jetpack Compose - 更改 Compsable 中的变量
- rust - 如何按模式对向量的元素进行分组?