私はLinux ubuntu上で実行しているAWS EC2サービスのサーバーを持っていて、Apache、php、そしてmysqlをインストールしました。
私は自分のドキュメントルート.htaccess
に/var/www/html
ファイルを追加しました。
このコードをErrorDocument 404 /var/www/html/404.php
と入力しましたが、まだ表示されていません。
私はこのコマンドを複数回入力し続けました:Sudo service httpd restart
はサーバーを再起動しますが、変更は表示されません...
どうすればこれを解決できますか?私は何か間違ったことをしましたか?
前もって感謝します!
まず、httpdの再起動は.htaccessファイルには必要ありません。 .htaccessファイルは特にrootを持っていない人々のためのものです - すなわち、httpdサーバ設定ファイルへのアクセス権を持たず、そしてサーバを再起動することができません。サーバーを再起動できるので、.htaccessファイルは必要なく、メインのサーバー設定を直接使用できます。
次に、.htaccessファイルが無視されている場合は、AllowOverrideが正しく設定されていることを確認する必要があります。詳しくは http://httpd.Apache.org/docs/2.4/mod/core.html#allowoverride を参照してください。また、それが正しいスコープに設定されていることを確認する必要があります - すなわち、あなたの設定の正しいブロックに。例えば、あなたがではなくブロック内のものを編集していることを確認してください。
.htaccessファイルが実際に読み取られていることを確認したい場合は、ゴミを入れてください。 .htaccessファイルに "INVALID LINE HERE"などの無効な行があると、ブラウザでそのファイルが含まれているディレクトリをポイントすると500サーバーエラーになります。そうでない場合は、AllowOverrideが正しく設定されていません。
Apache mod_rewriteモジュールを有効にする
a2enmod rewrite
次のコードを/etc/Apache2/sites-available/default
に追加します
AllowOverride All
Apacheを再起動します
/etc/init.d/Apache2 restart
上記のことをすべて試してみましたが、それはすべて有効で良い答えであり、htaccessファイルが機能していないかまたは読み取られていない場合は、Apache2.conf
ファイルのディレクティブを変更してください。 Ubuntuでは、パスは/etc/Apache2/Apache2.conf
です。
Htaccessファイルがある公開Webページを指す<Directory>
ディレクティブを変更します。 AllowOverride None
からAllowOverride All
に変更
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
私は同じ問題を抱えていて、Ubuntu Askに答えと説明を見つけました!フォーラム https://askubuntu.com/questions/421233/enabling-htaccess-file-to-rewrite-path-not-working
にとって ウブントゥ、
まず、このコマンドを実行します。 -
Sudo a2enmod rewrite
次に、nanoまたはvimを使用してファイル/etc/Apache2/sites-available/000-default.conf
を編集します。 -
Sudo nano /etc/Apache2/sites-available/000-default.conf
次に000-default.conf
ファイルで、DocumentRoot /var/www/html
行の後にこれを追加します。あなたのルートHTMLディレクトリが他の何かであるならば、それからそれを書いてください -
<Directory "/var/www/html">
AllowOverride All
</Directory>
すべての作業を終えたら、コマンドSudo service Apache2 restart
を使用してApacheを再起動します。
ちょうど3つのステップに従ってください
次のコマンドでmode_rewriteを有効にします
Sudo a2enmodの書き換え
パスワードが求められます。パスワードを入力してください
/ etc/Apache2/sites-available/ディレクトリにある0-default.confまたはdefault.confファイルを更新します。直接編集することはできません。それで開くために次のコマンドを使用してください
Sudo gedit /etc/Apache2/sites-available/000-default.conf
またはSudo gedit /etc/Apache2/sites-available/default.conf
あなたは得るでしょう
DocumentRoot/var/www/html
OR
DocumentRoot/var/www
ライン。その後に次のコードを追加してください。
<Directory /var/www/html/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ユーザーにディレクトリタグパスをファイルに表示されているものと同じにします。
次のコマンドを使ってApacheサーバーを再起動します。
SudoサービスApache2の再起動
ほとんどの場合、AllowOverrideはNoneに設定されています。/etc/Apache2フォルダーにあるApache2.confのDirectoryセクション内
AllowOverride Allに設定してみてください
私の経験では、/ var/www/directoryディレクティブはサブフォルダvirtualhostディレクティブを防ぎます。あなたがすべての提案を試してもまだうまくいかず、あなたが仮想ホストを使っているのなら、これを試してください。
1 - AllowOverride All
に/etc/Apache2/sites-available/example.com.conf
ディレクティブがあることを確認してください
2 - /etc/Apache2/Apache2.conf
内の/ var/www/Directoryディレクティブをチェックします(おそらく164行目)。
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
AllowOverride None
ディレクティブがある場合は、それをAllowOverride All
に変更するか、単にエスケープする
デフォルトでは、Apacheは書き換え規則を適用するために.htaccessファイルを使用することを禁じています。
ステップ1 - mod_rewriteを有効にする(有効でない場合)まず、mod_rewriteを有効にする必要があります。利用可能ですが、クリーンなApache 2インストールでは有効になりません。
$ Sudo a2enmod rewrite
これはモジュールをアクティブにするか、またはモジュールが既に有効になっていることを警告します。これらの変更を有効にするには、Apacheを再起動してください。
$ Sudo systemctl restart Apache2
mod_rewriteが完全に有効になりました。次のステップでは、リダイレクトの書き換え規則を定義するために使用する.htaccessファイルを設定します。
ステップ2 - .htaccessの設定nanoまたはお好みのテキストエディタを使用して、デフォルトのApache設定ファイルを開きます。
$ Sudo nano /etc/Apache2/sites-available/000-default.conf
そのファイルの中に、最初の行から始まるブロックがあります。そのブロックの内側に、設定ファイルが次のようになるように、次の新しいブロックを追加します。すべてのブロックが正しくインデントされていることを確認してください。
/etc/Apache2/sites-available/000-default.conf
<VirtualHost *:80>
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
. . .
</VirtualHost>
ファイルを保存して閉じます。これらの変更を有効にするには、Apacheを再起動してください。
$ Sudo systemctl restart Apache2
完了しました。あなたの.htacessはうまくいくはずです。 このリンクは実際に誰かに役立つかもしれませんhttps://www.digitalocean.com/community/tutorials/how-to-rewrite-urls- with-mod_rewrite-for-Apache-on-ubuntu-16-04
この使用をクリアしました。このサイトを使用して ここをクリック
WampServer
内WampServer Tray icon ----> Apache ---> Apacheモジュール---> rewrite_module
あなたの.htaccessにRewriteBase/{あなたのフォルダ} /を使う