仮想ホストのmod_rewriteを有効にする方法


8

mod_rewriteルールが仮想ホストで機能していません。これはcakephpに欲しかった。

仮想ホストファイルに追加する設定はありますか?

回答:


21

最新の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あるかどうかを確認します。そこにある場合は、有効になっています。


このオプションを使用する前は、すべての書き換えが404で終了していましたが、更新apache2.confして再起動するとapache404は消えましたが、すべてのページがホームページに戻りました。モジュールも有効にしphpinfo()ていませんでした mod_rewrite。次に、CLIコマンドを実行すると(以下のLonstonによって提案されています)、すべてがうまくいきました!このソリューションでmod-rewriteモジュールが有効にならず、CLI approadが有効になったのはなぜですか?これは.conf、モジュールを有効にするために次々とCLIコマンドを変更して実行することの組み合わせですか、それともこれらのどちらでも実際に十分ですか?
Niladri Sarkar

6

を使用して書き換えを有効にする

# 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>

これも私にとってはうまくいきました!
Niladri Sarkar
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.