使用.htaccess配置301重定向,解决302跳转残留问题
解决根目录302跳转改为301的问题
从你的请求日志和.htaccess代码来看,当前的301规则仅处理了HTTP到HTTPS的协议跳转,而https://rss.oliroe.com/跳转到/tt-rss/的302并非由你提供的.htaccess规则生成——这个跳转大概率来自tt-rss程序本身或者根目录的默认索引文件(比如index.php)。
以下是几种可行的解决方法:
方法1:修改程序或索引文件的跳转代码
- 检查网站根目录的
index.php(或其他默认索引文件),查找类似这样的PHP跳转代码:
将其中的header("Location: /tt-rss/"); // 或者明确指定302的写法 header("Location: /tt-rss/", true, 302);302改为301,保存后重启PHP服务即可。 - 如果是tt-rss内置的跳转逻辑,进入程序后台设置或配置文件,查找站点根目录跳转的相关选项,将跳转状态码设置为301。
方法2:通过.htaccess添加301跳转规则
如果无法修改程序代码,可以在现有的.htaccess规则后添加根目录跳转的301规则,注意规则顺序要放在HTTPS跳转之后:
RewriteEngine On # HTTP转HTTPS的301规则 RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] # 根目录跳转至/tt-rss/的301规则 RewriteRule ^$ /tt-rss/ [L,R=301]
这条规则会直接匹配根目录的请求(^$表示空路径),强制返回301跳转,覆盖程序生成的302响应。
验证修改效果
修改完成后,用curl或浏览器开发者工具检查请求:
- 访问
http://rss.oliroe.com应先301到HTTPS,再301到/tt-rss/,最终返回200状态码。
内容的提问来源于stack exchange,提问作者Oliver Roe
相关产品推荐
相关产品推荐

