AWS で実行される codeigniter/php Web アプリケーションを開発しています。LAMP スタック (ubuntu) です。URL の index.php を取り除くために、mod_rewrite を有効にし、.htaccess ファイルを使用して解決しました。
私の .htacces ファイルは次のとおりです (これはファイル全体です)。
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php/$0 [PT,L]
すべてが正常に機能し、URL に index.php が表示されず、ホームページ (http://www.example.com) にも、http://www.example.com/home/などのより深いページにも表示されませんでした。索引
SSL を追加/構成すると、リダイレクトが機能しなくなりました。ホームページは SSL (https://www.example.com) の前と同じように機能しますが、より深い URL は機能しません。「正しい」URL (https://www.example.com/home/index) を開こうとしていますが、サーバーは /home/index が見つからないと主張しています。https://www.example.com/index.php/home/indexと入力すると正常に機能するため、書き換えルールが正しく機能していないようです。
私はググってかなりの数の書き換えルールを試しましたが、どれも魔法のようなものではありませんでした...
追加情報: ユーザーを適切なベース URL にルーティングするために、Apache 2 sites-available および sites-enabled を使用しています (インスタンスで複数のアプリケーションを実行しているため)。
ファイルの順序は次のとおりです。 A. 最初のファイルの最初の部分は次のとおりです。
<VirtualHost *:80> ServerAdmin webmaster@localhost Redirect permanent / https://www.example.com/ ... </VirtualHost>
B. 2 番目のファイルの最初の部分は次のとおりです。
<IfModule mod_ssl.c> <VirtualHost *:443> ServerAdmin webmaster@localhost ServerName www.example.com DocumentRoot /var/www/example ... </VirtualHost> </IfModule>
何か案が?それが構成の問題なのか、それとも私のアプリケーションの問題なのかはわかりません。どんなポインタでも大歓迎です。