我在托管服务器上有一个站点,由于历史原因,该站点在子文件夹中包含分别用于开发,测试和生产的版本。不同的版本通过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不是我的强项!
提前致谢!