2016-11-01 4 views
0

とhttpsの問題私は私のCodeIgniterのmod_rewriteの設定に問題を抱えている... ここでは私の現在の設定です:のapache - mod_rewriteのCodeIgniterの

RewriteCond %{SERVER_NAME} =example.com 
    RewriteRule ^.* https://www.%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent,L] 

    RewriteCond %{SERVER_NAME} =www.example.com 
    RewriteRule ^.* https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent,L] 

    RewriteCond %{SERVER_NAME} =www.example.com 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ https://%{SERVER_NAME}/index.php/$1 [L] 

、これは.htaccessファイルではないことに注意してくださいこれは私の仮想ホストファイルにあります。

アクセスexample.comがhttps://www.example.com に書き換えてアクセスwww.example.comはhttps://www.example.com

にリダイレクトしかしhttps://www.example.com/loginへのアクセスは404ページが表示されます...

おかげ

答えて

1

CodeIgniterのURLが構成されています

サイト_URL /コントローラ/メソッド

404ページエラーは、次の場合に発生します。

  1. あなたはコントローラ
  2. は、あなたのクラス名がコントローラと一致していないと、それは最初の文字が大文字にされていないのですがありません。 3.コントローラ内に指定されたメソッドがありません。
0

最初のルールはほとんど大丈夫でした。第2のルールは良くない、あなたが無限のリダイレクトをどのように得ていないのか分からない。 3番目のルールには冗長条件と外部リダイレクト形式がありますが、内部書き換えにする必要があります。置換に?が含まれていない限り、QSAは必要ありません。 ?がなければ、クエリは自動的に追加されます。

RewriteCond %{SERVER_NAME} =example.com 
RewriteRule^https://www.%{SERVER_NAME}%{REQUEST_URI} [R=permanent,L] 

RewriteCond %{HTTPS} !=on 
RewriteRule^https://%{SERVER_NAME}%{REQUEST_URI} [R=permanent,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(?!index.php(?:$|/)).+$ index.php/$0 [END] 
関連する問題