mod_rewriteルールが仮想ホストで機能していません。これはcakephpに欲しかった。
仮想ホストファイルに追加する設定はありますか?
mod_rewriteルールが仮想ホストで機能していません。これはcakephpに欲しかった。
仮想ホストファイルに追加する設定はありますか?
回答:
最新のApacheバージョン2.4以降を使用している場合は、mod_rewriteを有効にするプロセスを次に示します。お気に入りのテキストエディターを使用
してetc/apache2/
[開く]に移動しapache2.conf
ます。
変化する
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
に
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
それを保存します。このファイルを編集して保存するには、root権限が必要です。
Apacheを再起動します。
service apache2 reload
このプロセスにより、仮想ホストを含むApacheサーバーのmod_rewriteが有効になります。
有効になっているかどうかも確認できます。PHPスクリプトを作成する
<?php
phpinfo();
?>
サーバーからロードします。Loaded Modules
セクションの下にmod_rewrite
あるかどうかを確認します。そこにある場合は、有効になっています。
を使用して書き換えを有効にする
# sudo a2enmod rewrite
次に、使用してapcahe2を再起動します
# service apache2 restart
追加してVirtualhostで有効にします
AllowOverride FileInfo
次に、使用してapcahe2を再起動します
# service apache2 restart
例:
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
# I Have below line from none to FileInfo
AllowOverride FileInfo
Order allow,deny
allow from all
</Directory>
apache2.conf
して再起動するとapache
404は消えましたが、すべてのページがホームページに戻りました。モジュールも有効にしphpinfo()
ていませんでしたmod_rewrite
。次に、CLIコマンドを実行すると(以下のLonstonによって提案されています)、すべてがうまくいきました!このソリューションでmod-rewrite
モジュールが有効にならず、CLI approadが有効になったのはなぜですか?これは.conf
、モジュールを有効にするために次々とCLIコマンドを変更して実行することの組み合わせですか、それともこれらのどちらでも実際に十分ですか?