.htaccess和302 vs 301重定向

时间:2015-11-21 18:32:11

标签: .htaccess redirect

我在托管服务器上有一个站点,由于历史原因,该站点在子文件夹中包含分别用于开发,测试和生产的版本。不同的版本通过git repo的分支进行管理。

我需要:

确保所有请求都是https 对主URL的所有请求都将被引用到生产站点 对存在的页面的所有请求都被尊重

我在根目录中有一个.htaccess文件,它可以很好地工作但是有一个问题。如果有人访问网站请求

domain.co.uk www.domain.co.uk   or http://www.domain.co.uk

它们被正确地重定向到

https://www.domain.com/production/index.php

但是有一个302标题

如果有人访问网站请求

https://www.domain.com/

它们再次被正确重定向,但这次使用301永久重定向标题。

出于搜索引擎优化的目的,我希望能够为每次重定向获得301标题。

这是我的.htaccess内容:

RewriteEngine on
Options +FollowSymLinks
# check for no www on url
RewriteCond %{HTTP_HOST} ^domain.co.uk$ [NC]
RewriteRule ^(.*)$ https://www.domain.co.uk/$1 [L,R=301]
# check protocol
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
# send everything to production
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.co\.uk$ [NC]
RewriteRule ^/?$ /production/ [R=301,L,NE]

如果我有权访问服务器,我怀疑我可能会觉得这更容易,但这个站点托管在运行lightspeed的共享服务器上。

真的输给了这个 - 我是一个非常优秀的程序员,但是.htaccess不是我的强项!

提前致谢!

0 个答案:

没有答案