apache - 网站监听80和443端口时如何在apache中做301重定向http到https?

标签 apache .htaccess redirect drupal-7 seo

我正在使用 apache2.4 并使用 drupal 7 配置网站。网站在端口 80 上,ssl 在端口 443 上启用。 我已通过网站管理员登录将主页重定向到 https,但在检查 301 重定向时它说 URL 是 应该使用 302 临时重定向而不是 301 永久重定向来重定向 考虑 SEO 友好的重定向方法。到目前为止我使用的唯一重定向是

RewriteCond %{HTTP_HOST} ^domain\.com [NC]
RewriteRule ^(.*)$ https://www.domain.com/$1 [L,R=301,NC] 

但它不会从 http 重定向到 https 。我什至尝试遵循规则

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www.domain\.com*
RewriteRule ^(.*)$ https://www.domain.com/$1 [L,R=301]

谁能帮我永久重定向。

最佳答案

您的规则应该永久重定向。 检查您的代码是否位于 htaccess 之上。

另外我想你想检查请求是否不在 https 上并且与你的域匹配:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www\.domain\.com
RewriteRule (.*) https://www.domain.com%{REQUEST_URI} [L,R=301]

我认为比 htaccess 更好的方法是取消虚拟主机文件 - 这样网络服务器就不需要读取 htaccess: https://wiki.apache.org/httpd/RedirectSSL

<VirtualHost *:80>
   ServerName www.example.com
   Redirect permanent / https://secure.example.com/
</VirtualHost>

关于apache - 网站监听80和443端口时如何在apache中做301重定向http到https?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41278246/

相关文章:

.htaccess - 索引页显示在目录中的所有页面上

php - 将购买特定产品的客户从单一产品页面重定向

php - WP_redirect 不工作( header 已在 pluggable.php 中发送)

image - 如何将 WORDPRESS 热链接图像(对于 exp : Image. jpg)重定向到它所在的帖子/页面?

apache - 如果域匹配则设置 cookie

php - 在 Xampp/Windows 7 上安装 ImageMagick

php - 我可以安排来自 Apache 的 HTTP 请求吗?

apache - .Htaccess - 服务器错误

.htaccess - Apache 2.4 .htaccess 文件不拒绝访问

php - Linux CentOS 7 - 通过.htaccess配置httpd.conf文件