20

htaccess ファイルは localhost では機能しますが、EC2 インスタンスにデプロイすると機能しません。

Macbook を使用していますが、ファインダーで htaccess ファイルが表示されません。おそらく EC2 インスタンスにコピーされていないと思いましたが、プロジェクトをコピーすると htaccess ファイルが表示されるため、これは問題ではないと思います私のエディターで。

EC2 Linux インスタンスで mod の書き換えを有効にするものはありますか? ある場合、私はそれをしていませんか、それともデフォルトで mod の書き換えを有効にしますか?

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
4

6 に答える 6

66

さまざまな投稿からいくつかの情報をまとめたので、答えを出したいと思いました。

  1. Paul がコメントしたように、Amazon EC2 Linux を実行している場合、おそらく Apache ではなく httpd を実行しています。したがって、ファイルは/etc/httpd/conf/httpd.conf
  2. root ユーザーとしてファイルを変更する必要があります。(ssh アクセスから) 次を実行します: sudo vim /etc/httpd/conf/httpd.conf( AMAZON EC2 で httpd.conf ファイルを編集する方法)
  3. DocumentRoot "/var/www/html"私にとっては2か所にリストされていました。この 2 か所で後続AllowOverride Noneを変更する必要がありました。AllowOverride All
  4. アパッチを再起動します。Apacheを再起動するだけで機能するはずですが、ec2インスタンス全体を再起動しました(Apacheを自動的に開始するように構成しました)。しかし、変更が機能していることがわかります。

.htaccess ファイルに同じ変更を加えようとしていました (コード イグナイター アプリケーションの URL から index.php を削除します)。それが役に立てば幸い!

于 2014-09-03T00:40:38.790 に答える
0

apache2サーバーを利用する場合

次のディレクトリに移動します。

cd /etc/apache2/sites-available

ここで LS コマンドを使用すると、次のファイルが表示されます。

000-default.conf

これは、/var/www/html フォルダー内のサイトに適用されるデフォルトの Apache 構成を含むファイルです。

このファイルを開いて編集します。

sudo nano 000-default.conf

DocumentRoot /var/www/html 行の後に次の行を追加します。

Options FollowSymLinks AllowOverride All Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all

ファイルを保存し、apache を再起動します。

sudo サービス apache2 再起動

以上で、.htaccess ファイルが機能するようになります

于 2019-05-23T07:44:02.017 に答える