请问一条 .htaccess 规则写法

2016-01-22 19:03:12 +08:00
 songjiaxin2008

用的是 typecho 目前做到了 伪静态
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
最近加上了 HTTPS CDN 怎么才能做到自动从 http 301 跳转到 https 呢?
谷歌到的基本都是 wordpress 的规则,我修改之后用上之后, chrome 访问都会提示 过多重定向
比较熟悉 nginx ,但是没有办法换 web 服务器,希望有了解的朋友能够指点一下,多谢了。

2105 次点击
所在节点    Apache
4 条回复
ScotGu
2016-01-22 19:23:02 +08:00
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} http://www.yourdomain.com$ [NC]
RewriteRule ^(.*)$ https://www.yourdomain.com/$1 [R=301,L]

这样?
songjiaxin2008
2016-01-22 20:55:42 +08:00
@ScotGu 不行诶 这个只是跳转 https 当然我还是想保留伪静态的 我尝试这么写 但是出问题了
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.mysite.com/$1 [R,L]
yeyeye
2016-01-22 22:39:56 +08:00
@songjiaxin2008 你 2 楼的规则我觉得根本就不会执行,我认为应该把跳转代码写前面,要不然就被 index.php 后面那个 L 放弃掉了
aprikyblue
2016-01-22 23:48:33 +08:00
一旦带 L 标志的规则被匹配到,后续规则不再继续执行

RewriteEngine On 
RewriteBase / 

RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.mysite.com/$1 [R,L]

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L]

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/252692

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX