7

Linux Ubuntu (Ubuntu Server 13.04 64 ビット) で実行されている amazon の ec2 サービスのサーバーがあり、apache、php、および mysql をインストールしました。ドキュメント ルート (つまり、/var/www/) に .htaccess ファイルを追加しました。

.htaccess ファイルのコードは次のとおりです。

RewriteEngine on 
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php

「index1.php」ではなく「index1」のように URL から .php を削除すると、404 ブラウザ エラーが返されます。以前のサーバーでは正常に動作します。

サーバーで .htaccess を有効にしています。コマンド「sudo vim /etc/apache2/sites-available/default」を使用して実行し、「AllowOverride None」を「AllowOverride All」に変更しました。

また、htaccess ファイルに無効な値を渡すことで .htaccess が動作することを確認しましたが、ブラウザで「内部サーバー エラー - 500」が返されます。

これが私のサーバー情報のリンクです:http://54.200.58.45/mytest.php

この点でどんな助けでも大歓迎です。

4

5 に答える 5

12

これは、Ubuntu 13.10 を使用した新しい EC2 インスタンスで私のために働いたものです。

  • a2enmod 書き換え
  • vim /etc/apache2/sites-enabled/000-default.conf
  • 以下を VirtualHost に追加します
<ディレクトリ "/var/www">
  AllowOverride すべて
</ディレクトリ>
  • サービス apache2 の再起動
于 2014-01-26T10:45:49.550 に答える
6

これは、セキュリティ上の理由から、書き換えモジュールがデフォルトで有効になっていないために発生します。

ファイルに呼び出される新しいファイルを作成し、rewrite.confこの/etc/apache2/mods-enabled 行を置きますLoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

サーバーをリロードするsudo service apache2 restart

これは私にとっても、うまくいけばあなたにとってもうまくいきましたが、実稼働サーバーではこれをお勧めしません. これは、ライブサーバー向けではなく、通常の Ubuntu ユーザー向けの情報です。

于 2013-10-24T14:00:19.797 に答える
0

すべてを試しましたが、何も機能しませんでした...

2時間後..やっと直りました。

したがって、最初に除外するもの。

  1. 誰もが話している/etc/apache2/apache2.confと/etc/apache2/sites-enabled/000-default.confに変更を加えたことを確認してください... ( AllowOverride All と AccessFileName .htaccess を変更してはいけませんコメントアウトします)

  2. ディレクトリ /var/www/html が正しいフォルダを指していることを確認してください。/html がある場合もあれば、/var/www だけの場合もあります (ただし、/ で終わってはいけませんが、それは問題ではないかもしれません)。

    1. 最後に、これが私のために働いたものです。Apache だけでなく、サーバー全体を再起動します。apache2を停止しようとした後( service apache2 stop ) 、これが私の問題であることがわかりましたが、それでも自分のWebサイトにアクセスできました。そのため、完全な再起動を行い、過去 2 時間に行ったすべての変更が最終的に開始されました。

成功 :)

于 2015-11-07T02:39:25.313 に答える