V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
songjiaxin2008
V2EX  ›  Apache

请问一条 .htaccess 规则写法

  •  
  •   songjiaxin2008 · Jan 22, 2016 · 2532 views
    This topic created in 3750 days ago, the information mentioned may be changed or developed.

    用的是 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 replies    2016-01-22 23:48:33 +08:00
    ScotGu
        1
    ScotGu  
       Jan 22, 2016
    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTP_HOST} http://www.yourdomain.com$ [NC]
    RewriteRule ^(.*)$ https://www.yourdomain.com/$1 [R=301,L]

    这样?
    songjiaxin2008
        2
    songjiaxin2008  
    OP
       Jan 22, 2016
    @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  
       Jan 22, 2016
    @songjiaxin2008 你 2 楼的规则我觉得根本就不会执行,我认为应该把跳转代码写前面,要不然就被 index.php 后面那个 L 放弃掉了
    aprikyblue
        4
    aprikyblue  
       Jan 22, 2016
    一旦带 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]
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2989 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 14:39 · PVG 22:39 · LAX 07:39 · JFK 10:39
    ♥ Do have faith in what you're doing.