2012-05-06 8 views
1

私はこの質問がすでに数回聞かれていたかもしれないことは知っているかもしれませんが、通常のindex.phpではなくindex_failsafe.phpファイルにすべての要求を送信する.htaccessファイルを使用してCodeIgniterの特定の解決策が必要ですurlは 'admin'で始まらない。例:Codeigniter 2と.htaccess - 「保守モード」を実装する方法は?

  1. www.myhost.com/admin - >ケース1に

フェイルセーフページに送信 -

  • いつもwww.myhost.com/welcomeのように>作品:

    RewriteRule ^.*$ index.php/$1 [L] 
    

    RewriteRule ^.*$ index_failsafe.php/$1 [L] 
    

    マイ再:ケース2で

    書き込み条件は次のとおりです。

    RewriteEngine On 
    
        RewriteBase/
        RewriteCond %{REQUEST_FILENAME} !-f 
        RewriteCond %{REQUEST_FILENAME} !-d 
    

    これは可能ですか?

    個人的に

    答えて

    11

    私はIPでそれを行う - 私は私のサイトをオフラインにすることができますが、私はまだ(新機能をテストし、それがアップ戻す前に働いていることを確認する)ことへの完全なアクセス権を持っている

    RewriteEngine on 
    
        # For maintenance: 
        # If your IP address is 1.1.1.1 - then dont re-write 
        RewriteCond %{REMOTE_ADDR} !^1\.1\.1\.1 
        # If the person is requesting the maintenance page, also dont rewrite (prevent loops) 
        RewriteCond %{REQUEST_URI} !/maintenance.html$ 
        # Otherwise rewrite all requests to the maintenance page 
        RewriteRule $ /maintenance.html [R=302,L] 
    
    
        # do not rewrite links to the documentation, assets and public files 
        RewriteCond $1 !^(assets) 
    
        # do not rewrite for php files in the document root, robots.txt or the maintenance page 
        RewriteCond $1 !^([^\..]+\.php|robots\.txt|maintenance\.html) 
    
        # but rewrite everything else 
        RewriteRule ^(.*)$ index.php/$1 [L] 
    

    !1.1.1.1を現在のIPに変更するだけです。すなわち^ 121.65.56.65

    あなたのIPが何であるか、あなたがわからない場合は - !ちょうど「何が私のIPである」グーグル - と最初は

    しかし、あなたの特定の質問の面でヒットとして、それが表示されます - これを動作するはずです:

    RewriteCond %{REQUEST_URI} !/admin$ 
    RewriteRule $ /index_failsafe.php [R=302,L] 
    

    編集:

    +0

    第2回リライトコンドーンは何をしますか? 'RewriteCond%{REQUEST_URI}!/ maintenance.html $' –

    +1

    私はコメントを挿入するために私の答えを編集しましたが、その行は基本的に "ねえ、彼らがメンテナンスページを要求しているなら、ページ " - すなわちループを防ぐ – Laurence

    +0

    ' crossdomain.xml'とは何ですか? – Sparky

    1

    あなたがユーザーのためにセッションデータを保存するためにクッキーを使用する場合、その後に、ログインページコントローラを変更、ログアウトして皆を強制するためにクッキー名を変更する方が簡単かもしれません「メンテナンスのためのダウン」などの表示をロードします。

    クッキー名を元の状態に戻すだけで、誰もがログインします。ログインページコントローラがロードするビューを元に戻して、ユーザーが正常にログインできるようにしてください。あなたは、「メンテナンス・ログイン」と題し代替ログインコントローラとビューを作成することにより、さらに一歩それを取ることができる

    $config['sess_cookie_name'] 
    

    :、CIのセッションCookieを変更するのconfig.phpを開き、の値を変更するには

    そのようなことをして、テストのためにログインすることができます。

    これは、メンテナンスのためにサラダを取る必要があるときに使用する方法であり、うまくいきます。私たちの公開セールスページは影響を受けず、htaccessを使いこなす必要はありません。

    関連する問題