V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
songjiaxin2008
V2EX  ›  Apache

请问一条 .htaccess 规则写法

  •  
  •   songjiaxin2008 · 2016-01-22 19:03:12 +08:00 · 2082 次点击
    这是一个创建于 3220 天前的主题,其中的信息可能已经有所发展或是发生改变。

    用的是 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 服务器,希望有了解的朋友能够指点一下,多谢了。

    4 条回复    2016-01-22 23:48:33 +08:00
    ScotGu
        1
    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
        2
    songjiaxin2008  
    OP
       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
        3
    yeyeye  
       2016-01-22 22:39:56 +08:00
    @songjiaxin2008 你 2 楼的规则我觉得根本就不会执行,我认为应该把跳转代码写前面,要不然就被 index.php 后面那个 L 放弃掉了
    aprikyblue
        4
    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]
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   609 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 51ms · UTC 22:01 · PVG 06:01 · LAX 14:01 · JFK 17:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.