.htaccess - 为什么此 htaccess 重定向报告为临时重定向?
问题描述
我正在进行 SEO 审核,并注意到某些页面被报告为临时重定向,而不是永久重定向。我确定这是来自从 HTTP 到 HTTPS 的重定向设置。
这是来自 .htaccess 文件的重定向。
# website www redirect
RewriteEngine On
rewritecond %{http_host} ^example.com
rewriteRule ^(.*) https://www.example.com/$1 [R=301,L]
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
谁能告诉我这是否被错误地实现为 HTTPS 的永久重定向?
解决方案
根据https://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_r:
可以使用语法 [R=305] 指定任何有效的 HTTP 响应状态代码,如果未指定,则默认使用 302 状态代码。
因此,在您的第二个配置块中, i R
n[R,L]
是一个临时重定向(代码302
)。R=301
如果您想要永久重定向,请将其更改为或更清晰R=permanent
。
此外,对于您不需要的简单重定向mod_rewrite
,只需查看Redirect
指令或其包装器:RedirectTemp
和RedirectPermanent
,从mod_alias
模块(请参阅https://httpd.apache.org/docs/2.4/mod/mod_alias.html#redirect)
推荐阅读
- python - django.db.utils.ProgrammingError:关系“classroom_itematch”的列“rtd”已经存在
- html - 我使用 Bootstrap 4 作为导航栏。我无法更改包装 div 元素的背景颜色
- vba - 宏是否可以从打开的附件中识别电子邮件
- android - 如何绘制附加到矩形的三角形?
- ios - iOS 遇到 UITableView 以编程方式选择多个单元格并显示检查的问题
- android - 如何在所有 EditTexts 中完全隐藏虚拟键盘?
- javascript - 在 Node.js 中没有 Multer 的图像上传
- ios - 目标 C 到 Swift 中的 unsigned long , unsigned char
- java - java.lang.NoSuchMethodError: com.google.common.base.Platform.systemNanoTime()J
- java - 如何从 volley 回调中获取 POJO,并在调用函数中使用/返回它?