.htaccessファイルを有効にしてパスを書き換える(機能しない)


17

すべてのチュートリアルでは、編集するように指示されて/etc/apache2/sites-available/defaultいますが、このファイルは存在しません。このファイル内で、次を編集する必要があります。

<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
#AllowOverride All
#AllowOverride AuthConfig FileInfo Indexes Limit Options=All, MultiViews        
Order allow,deny
allow from all </Directory>

ファイルはどのように見え、自分で作成する必要がありますか?

また、私は000-default.confファイルを持っていますが、上記の「コード」もそこにありません。

回答:


59

Apacheバージョン2.4以降の場合は、

/etc/apache2/apache2.conf

そのファイルを編集する必要があります(root権限が必要です)。このようにディレクトリテキストを変更します。

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

次に、Apacheを再起動します。

service apache2 restart

それがうまくいくことを願っています。


これが何をするのか説明してもらえますか?これは.htaccessとどのように結びついていますか?私の.htaccessはまったく読まない。
chx101

1
ここで重要なのはAllowOverride All、すべての設定を.htaccessファイルで設定(上書き)できることを意味します。ドキュメントを参照してください:httpd.apache.org/docs/2.4/mod/core.html#allowoverride
jacwah

18

Ubuntu 14.04(およびApache 2.4)では、デフォルトのDocumentRootが/ var / wwwから/ var / www / htmlに変更されました。

最初にa2enmodを有効にします

sudo a2enmod rewrite 

そして

sudo service apache2 restart

sudo nano /etc/apache2/sites-enabled/000-default.conf

これらの行を最後に追加します

<Directory /var/www/html>
    AllowOverride All
 </Directory>

そして

sudo service apache2 restart

1
このソリューションは、mod_rewriteを最初に有効にする必要があるため、私にとっては有効です。どうもありがとう。
kishor10d

1
これはApache 2.4で本当に機能しました。私の一日を救った。maing apache2.confを編集した後でも.htaccessは機能しませんでしたが、この方法で機能しました。
ファイサルサルフラズ

9

アップグレード/更新ごとに同じ構成を繰り返したくない場合

最善の方法は次のとおりです。

構成ファイルを編集または作成します

/etc/apache2/conf-available/httpd.conf

追加

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

設定ファイルを有効にします

sudo a2enconf httpd

Apacheを再起動またはリロードします

sudo service apache2 restart

または

sudo service apache2 reload

完了しました!

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