ONESRC - apache
type: channel
link: https://www.onesrc.cn/tag/apache/
items: apache https跳转 和 整站301重定向问题

apache https跳转 和 整站301重定向问题
type: item
date: 2019-07-19T22:14:35+08:00
description: 装了宝塔面板，服务器上的问题都交到宝塔上了，但是遇到了一个问题。本站是以www.onesrc.cn为主域名的，onesrc.cn 做成了301跳转。能实现onesrc.cn/xxx 到www.onesrc.cn的跳转，却无法跳转到www.onesrc.cn/xxx，百度后发现有在宝塔中这样设置301跳转的：设置之后，发现没毛用，$request_uri可以被nginx识别，但是不能被apache识别。木得办法了，干脆一不做二不休，弃用宝塔的301，自己手动写重定向规则。顺带着弃用了宝塔自带的强制https跳转，把这个也整合到apache的重定向里面打开url重定向支持找到 /www/server/apache/conf/httpd.conf文件，在第152行左右找到#LoadModule rewrite_module modules/mod_rewrite.so去掉代表注释的#号找到 < Directory >段，修改为 AllowOverride All AllowOverride All Require all granted 重启apache服务设置重定向规则在网站根目录下放一个.htaccess文件，内容如下 RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^onesrc.cn$ [NC] RewriteRule ^(.*)$ https://www.onesrc.cn/$1 [R=301,L] RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.onesrc.cn/$1 [R=301,L] RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] 共有四条RewriteRule重定向规则将onesrc.cn的请求301重定向到 https://www.onesrc.cn 实现整站的301跳转将http请求(80端口) 重定向到 https://www.onesrc.cn 实现http至 https 跳转限制访问，不允许直接访问index.php文件当请求不存在的资源时, 统一重定向到index.php，由其（typecho）做出进一步处理参考：Apache Rewrite详细配置与使用说明apache如何设置http自动跳转到https如何将apache 变量request_uri作为参数传到页面