すべてをAllowOverrideに設定する方法


161

設定したいのですが、AllowOverride allどうすればいいのか分かりません。私はグーグルを検索して次のコードを見つけて貼り付けました.htaccess

<Directory>
        AllowOverride All
</Directory>

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

誰かがこのコードをどこに配置するか、またはそれを行う方法を私に案内できますか?


3
<Directory>ディレクティブはパス引数が必要です。
FKEinternet 2018年

回答:


317

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、モジュールの書き換えを有効にする必要がある場合もあります。


55
私もを使用する必要がありsudo a2enmod rewrite、それでうまくいきました。Ubuntu 14.04 LTSの場合。それが誰かに役立つことを願っています。
ジョナウズ2014年

2
奇妙なことに...これを行うと、内部サーバーエラーが発生します。これは、/ var / www / .htaccessにある.htaccessファイルのエラーを示していますか?apache2、confをAllowOverride Noneに戻すと、エラーは修正されますが、URLの書き換えは許可されません。
o_O

Ubuntu 12.04の場合。私は、/ etc / apache2の/サイト利用可能/デフォルト・パスでこのファイルを見つけた
عثمانغني

これを別のファイルから上書きするにはどうすればよいですか?ファイルのIncludeOptional conf-enabled/*.conf最後の行にがあることがわかりapache2.confます。apache2.conf代わりにそれが優先されるようです。
JohnnyQ、2015年

これは私にとって魔法です。私の会社のdebianサーバーをwheezyからjessieに更新した後、Apacheのすべてが機能しなくなり、これを追加した後、すべてが再び機能し始めました。
periket2000 2015年

51

の主な目標はAllowOverride、Apacheのメイン構成ファイル(主に/ etc / apache2 /にあるファイル)のマネージャーが、構成のどの部分をアプリケーションによってパスごとに動的に変更できるかを決定することです。

サーバーの管理者でない場合は、これらの管理者が許可するAllowOverrideレベルに依存します。これにより、重要なセキュリティ設定を変更できないようにすることができます。

マスターApache構成マネージャーである場合はAllowOverride None、.htaccessファイルに基づいて、見つけたすべてのgoogle_basedサンプルを常に使用Directoryし、メイン構成ファイルのセクションに転送する必要があります。以下のための.htaccessの内容として.htaccess内のファイル/my/path/to/a/directoryと同じである<Directory /my/path/to/a/directory>ことを除いて、命令.htaccessの動的ごとのHTTPリクエストの構成変更は、Webサーバーを減速ものです。.htaccessチェックのない静的構成を常に優先します(.htaccess変更によるセキュリティ攻撃も回避します)。

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


17

後藤メモ帳で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>

次に、ローカルサーバーを再起動します。


仕事完了!タイサー!
James Walker、

6
NB Order allow,denyとは、Allow from allApacheのためのもので2.2およびそれ以前。Apache 2.4では、これらの2行はRequire all granted他の回答に示されているように置き換えられます。
FKEinternet 2018年

13

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>

8
その後、サーバーを再起動します
Daniel

私の.htaccesを100回チェックした後、これが解決策でした!どうもありがとうございました。「all」がApache構成のデフォルト値だと思いました。
Matthias Kleine 2015

また、あなたの答えでLinuxに言及することは良くありません。これは古いですが、私はちょうどあなたが言っていることはRedHatのベースのディストリビューションのためであることを明確にしたい
Chi.CJRajeeva Lochana

11

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 NoneAllowOveride Allに変更します

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


2015Nov18 1539 PSTのように、私は「AllowOverrideの」をGoogleで検索するとき、私はショーその検索結果の上にボックスが表示され、この:now here fine the code line kinda like # 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. #Sep 11, 2013 apache - How to Set AllowOverride all - Stack Overflow stackoverflow.com/questions/18740419/how-to-set-allowoverride-all
boot13


5

他のユーザーが.htaccessの使用を許可するために使用されるallowoverideディレクティブの使用についてここで説明したように。他のユーザーが.htaccessを書き込むためのアクセス権を持っている場合は、allowoverride allを使用しないでください。代わりに、特定のモジュールを許可するために、allowoverideを使用してください。

などのAllowOverride AuthConfig mod_rewrite代わりに

AllowOverride All

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


1
ありがとうございました!!これはまさに私が探していたものです。windwalker.com.auをwindwanderer.com.auにリダイレクトしたいので、.htaccessファイルでこのディレクティブを許可し、それ以上は許可しないようにする必要がありました。常にAllowOverride ALLを大幅に配置すると、サーバーのセキュリティが低下します。
Jesse the Wind Wanderer

1

私もこの問題に遭遇し、以下の2つのステップとして解決策を見つけました。1. apache2のサイト対応フォルダーで、 "AllowOverride all"( "none"ではなく "all"にする必要があります)を設定してDirectory要素を編集します。 wwwフォルダーのkohanaプロジェクトで、「example.htaccess」の名前を「.htaccess」に変更します

私はubuntuでそれをやった。それがあなたを助けることを願っています。


0

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

さらに、これらの正しい回答は、ウェブサーバー構成の一部の設定SSL一致していないために、同じエラーが発生する場合があります。(明らかに.htaccessファイルを使用しない場合)。

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