web-dev-qa-db-ja.com

Apache 2.4でmod_rewriteを有効にする方法は?

Wordpressを使用していて、きれいなURL機能を有効にしたかったのですが、機能しません。mod_rewriteが原因だと思っていますが、有効にする方法がわかりません。 CentOS 7でのApache 2.4 ...

私はすでにこれを試しました:

grep -i LoadModule /etc/httpd/conf/httpd.conf | grep rewrite

しかし、何も...すべてのApacheモジュールをロードすることは悪い結果をもたらすことを知りたいですか、それとも悪い習慣ですか?

12

モジュールがロードされているかどうかを知る方法を見つけました。有効なモジュールをリストするコマンドは次のとおりです。

apachectl -M | sort

すべての有効なモジュールをアルファベット順にリストします。

Wordpressには.htaccessがありますが、デフォルトでrewrite_moduleを使用可能にします:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

私がしなければならなかった唯一のことは、/etc/httpd/conf.d/vhosts.confのvhost.confファイルにこれを追加することでした

<Directory /var/www/mysite>
    Options Indexes FollowSymLinks
    Require all granted
    AllowOverride All
</Directory>

そのファイルでホストを処理しているからです。ただし、httpd.conf、または.confに含まれるその他のhttpd.confファイルで実行できます。

ありがとう...

19

Apache2には、実行可能ファイルa2enmodおよびa2dismodが同梱されています。これらは、confファイルのシンボリックリンクのすべての「汚い作業」を行います。

Debianベースのディストリビューションでは、通常の場所は/etc/Apache/mods-available/です。以下に.conf構成ファイル(該当する場合)と、LoadModule Apache2ディレクティブを使用したモジュールごとの.loadファイルを示します。 /etc/Apache2/mods-enabled/に.loadファイルへのシンボリックリンクがある場合、モジュールは有効になります。

たとえば、コマンドでRewriteモジュールを有効にします

$ a2enmod rewrite
9
marekful
# nano /etc/httpd/conf/httpd.conf

見つける

follow (AllowOverride none) 

そしてそれを変える

(AllowOverride All) 
9
reimi

httpd.confAllowOverride Noneを検索し、それをAllowOverride Allに変更してから、Apacheを再起動します

2
Kent Aguilar