1. ホーム
  2. apache

[解決済み] Apache 2.2 で mod_rewrite を有効にする方法

2022-03-18 22:51:07

質問

VistaマシンにApache 2.2を新規にインストールしたのですが、mod rewriteを除いてすべて正常に動作しています。

をアンコメントしました。

LoadModule rewrite_module modules/mod_rewrite.s

のような単純なものであっても、私のリライトルールはどれも機能しません。

RewriteRule not_found %{DOCUMENT_ROOT}/index.php?page=404

私が使用しているすべてのルールは、私のホスティング上で動作しているので、彼らは大丈夫なはずです、だから私の質問は、modの書き換えをブロックすることができ、Apacheの設定で何か隠されたものがあるのですか?

どうすればいいですか?

を使用するために mod_rewrite を実行すると、ターミナルで次のコマンドを入力できます。

sudo a2enmod rewrite

の後、apache2 を再起動します。

sudo /etc/init.d/apache2 restart

または

sudo service apache2 restart

または新しい統一されたシステム制御方法に従って

sudo systemctl restart apache2

それから、もしよろしければ、以下のように .htaccess ファイルを作成します。

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
</IfModule>

上記の .htaccess ファイル(もし、あなたの DocumentRoot ) は、すべてのトラフィックを index.php ファイルを DocumentRoot が存在しない限り

そこで、以下のようなディレクトリ構造で、httpdocsが DocumentRoot

httpdocs/
    .htaccess
    index.php
    images/
        hello.png
    js/
        jquery.js
    css/
        style.css
includes/
    app/
        app.php

httpdocs に存在するすべてのファイルが、リクエスト元に提供されます。 .htaccess にリダイレクトされます。 httpdocs/index.php . アプリケーションのファイルは includes/app はアクセスできなくなります。