0

関連するすべての質問を検索しましたが、私の場合の解決策は見つかりませんでした。

次のような URL を持つスクリプトがあります。

htt://www.example.com/index.php/dosomthing/parametrs

今私はこれを使用しました:

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

次に、デフォルトのコントローラーで、ユーザーがログインしているかどうかを確認し、ログインしていない場合は、このクラス関数を使用してログインコントローラーにリダイレクトします。

function redirect($uri = '', $method = 'location', $http_response_code = 302)
    {
        $uri = $this->config['home_url'] . ltrim($uri, '/');

        switch($method)
        {
            case 'refresh'  : header("Refresh:0;url=".$uri);
                break;
            default         : header("Location: ".$uri, TRUE, $http_response_code);
                break;
        }

        $this->dija = null;

        exit;
    }

localhost では動作しますが、ホスティングでは動作せず、リダイレクト ループが発生します。どうすればよいかわからず、本当にイライラしています。

4

1 に答える 1

0

RewriteRule を次のように変更します。

RewriteRule ^(.*)$ index.php?$1 [L]

以前のケースでは、常に同じ古い URL に書き換えており、「index.php/」という名前のファイルがないため、index.php の部分をもう一度先頭に追加するだけです。

于 2013-02-05T18:18:06.880 に答える