bugfix> php > 投稿

これは私の.htaccessファイルの内容です。

私は2つのことを達成したいです:

  1. index.php を削除CodeIgniter URLから。
  2. すべての接続を https:// に強制します

HTTPSは正常に動作しますが、 index.php URLに残ります。どうすれば修正できますか?

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

回答 3 件
  • CodeIgniterの作業コードを以下に示します。これが役立つことを願っています

    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteBase /
        RewriteCond %{HTTP_HOST} !^www\.
        RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
        RewriteCond %{HTTPS} off
        RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]   
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)$ /index.php/$1 [L]
    </IfModule>
    
    

    また、アプリケーションのconfigフォルダーにあるconfig.phpから、index.phpを削除して空に設定する必要があります

    $config['index_page'] = '';
    
    

  • これを試して、

    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
    </IfModule>
    
    

  • .htaccessファイルに変更を加えた後、ベースURLからindex.phpを削除しているかどうかを確認します。

あなたの答え