0

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>

何か案が?それが構成の問題なのか、それとも私のアプリケーションの問題なのかはわかりません。どんなポインタでも大歓迎です。

4

1 に答える 1

0

.htaccess ファイルでこのコードを試してください。私もあなたのようにsslを有効にしてAWSでWebアプリケーションを開発しており、順調に進んでいます。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
于 2012-12-05T05:03:05.613 に答える