web-dev-qa-db-ja.com

AllowOverride allを設定する方法

AllowOverride allを設定したいのですが、その方法がわかりません。 Googleを検索して次のコードを見つけ、.htaccessに貼り付けました。

<Directory>
        AllowOverride All
</Directory>

しかしそれを貼り付けた後、私は"Internal Server Error"を受け取り始めました

誰かが私にこのコードをどこに置くべきか、あるいはそれをどうやってやるのか教えてもらえますか?

136
Munib

Ubuntuを使用している場合は、ファイル/etc/Apache2/Apache2.confを編集します(ここでは/var/wwwの例を示します)。

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

そしてそれをに変更します。

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

それから、

Sudo service Apache2 restart

モジュールの書き換えを有効にするためにSudo a2enmod rewriteを実行する必要があるかもしれません。

272
Naveed

AllowOverrideの主な目的は、Apacheの主な設定ファイル(主に/ etc/Apache2 /にあります)の管理者が、アプリケーションによってパスごとに設定のどの部分を動的に変更できるかを決定することです。

あなたがサーバの管理者でないなら、あなたは AllowOverride theses adminsがあなたに許可している/ Levelに依存します。そのため彼らはあなたがいくつかの重要なセキュリティ設定を変更するのを防ぐことができます。

あなたがマスターApache設定マネージャであるならば、あなたはいつもAllowOverride Noneを使い、そしてあなたが見つけるすべてのgoogle_based例をメインの設定ファイルのDirectoryセクションに移すべきです。 .htaccess内の/my/path/to/a/directoryファイルの.htaccessコンテンツは、<Directory /my/path/to/a/directory>命令と同じですが、動的なHTTP要求ごとの.htaccessの設定変更はWebサーバーの動作を遅くするものです。常に.htaccessチェックのない静的な設定を優先してください(そして.htaccessの変更によるセキュリティ攻撃も避けるでしょう)。

ちなみにあなたの例では<Directory>を使っていて、これは常に間違っています。ディレクトリの命令は常に<Directory /><Directory C:>あるいは<Directory /my/path/to/a/directory>のようなパスを含んでいます。 .htaccessはDirectory命令に似ていますが、このディレクトリに存在するファイルにあるため、もちろんこれを.htaccessに入れることはできません。もちろん、この命令は.htaccessファイルの セキュリティレベル を管理しているので、.htaccess内のAllowOverrideを変更することはできません。

42
regilero

ジャンプyour_severpath/Apache_ver/conf/メモ帳でファイルhttpd.confを開きます。

この行を見つけます:

#LoadModule vhost_alias_module modules/mod_vhost_alias.so

ハッシュ記号を削除します。

LoadModule vhost_alias_module modules/mod_vhost_alias.so

それから<Directory />に行きます

そして、に変更します。

<Directory />
    Options FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

その後、ローカルサーバーを再起動します。

16
Achintya Nayak

Linuxでは、ドキュメントルートへのアクセスを緩和するために、次のファイルを編集する必要があります。

/etc/httpd/conf/httpd.conf

また、どのディレクトリレベルにアクセスを制限したいかに応じて、ディレクティブを変更する必要があります。

AllowOverride None

AllowOverride All

そのため、/ var/www/htmlディレクトリのファイルへのアクセスを許可したいと仮定すると、以下の行を変更する必要があります。

<Directory "/var/www/html">
 AllowOverride None
</Directory>

<Directory "/var/www/html">
 AllowOverride All
</Directory>
12
Javier La Banca

Linuxを使用している場合は、次のディレクトリにあるコードを編集できます。

/etc/httpd/conf/httpd.conf

今ここでちょっと好きなコード行

# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
    AllowOverride None
#
# Controls who can get stuff from this server.
#
    Order allow,deny
    Allow from all

</Directory>

AllowOveride Noneを AllowOveride All に変更します。

これで、他のオペレーティングシステムが httpd.conf のファイルを見つけて編集しようとした場合、ディレクトリ内の.httacessファイルにあらゆる種類の規則を設定できます。

7
SAR

他のユーザがここでallowoverideディレクティブの使用法について説明したように、それは.htaccessの使用法に対する許可を与えるために使用されます。他のユーザーが.htaccessを書くためのアクセス権を持っているなら、allowoverride allを決して使わないことを指摘したいのは、代わりにallowoverideを使って特定のモジュールを許可することです。

代わりにAllowOverride AuthConfig mod_rewriteのように

AllowOverride All

なぜならmod_mimeのようなモジュールはあなたのサーバーサイドファイルをプレーンテキストとしてレンダリングすることができるからです。

5
Abhishek Gurjar

httpd.confファイルの代わりに.htaccessファイルに設定したいと思います。

どのOSを使っているのかよくわかりませんが、Ubuntuのためのこのリンクはあなたに何をすべきかについていくつかのポインタを与えるかもしれません。

https://help.ubuntu.com/community/EnablingUseOfApacheHtaccessFiles

4
Qben

私はこの問題にも遭遇し、私は以下の2つのステップとして解決策を見つけました。 wwwフォルダー内のkohanaプロジェクトで、 "example.htaccess"を ".htaccess"に名前変更します。

私はUbuntuでそれをやった。お役に立てば幸いです。

1
Quang Le

SuSE Linux Enterprise Server

正しいファイルを編集していることを確認してください https://www.suse.com/documentation/sles11/book_sle_admin/data/sec_Apache2_configuration.html

httpd.conf

メインのApacheサーバー設定ファイル。 このファイルを変更しないでください。 主にincludeステートメントとグローバル設定を含みます。ここにリストされている関連構成ファイルのグローバル設定を上書きします。 仮想ホスト設定 でホスト固有の設定(ドキュメントルートなど)を変更します。

そのような場合はvhosts.d/*.confを編集しなければなりません

0
escalator