31

ドキュメントルートの外にあるそのフォルダーに、week7という名前のフォルダーとhello.htmlという名前のhtmlページを作成し、エイリアスディレクティブを介して表示しようとしています。

ドキュメント ルートから week7 という名前のフォルダーを作成しました。私はそれのためにこの場所を選びました:

/usr/local/www/week7

私のドキュメントルートは次のとおりです。

/usr/local/www/apache22/data

httpd.conf とタグの下に、次のように書きました。

    Alias /week7 /usr/local/www/week7
<Directory /usr/local/www/week7>
    Require all granted
</Directory>

サーバーを再起動した後、次のメッセージを受け取りました: Forbidden 403 message.

hello.html ファイル、week7 フォルダー、さらには www フォルダーのアクセス許可を変更しようとしましたが、何も変わりませんでした。

何か案は?

4

7 に答える 7

42

Apache 2.4 を使用している場合

注文 許可、拒否
すべてから許可

なる...

すべての付与が必要

https://httpd.apache.org/docs/2.4/upgrading.html

于 2013-08-23T04:58:22.500 に答える
8

これらのディレクティブでこの問題を修正しました:

Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require local

ローカル コンピューターからのみ参照できますが、ローカルでのテストと開発には機能します。

于 2012-07-03T16:54:49.570 に答える
5

ここで他の回答が提供するソリューションを試してみて、 Linux Mintを使用してうまくいかないことがわかったので、別のユーザーとして apache を起動する別のオプションを見つけました。

unixd_module のドキュメントを読んだ後、「httpd.conf」を編集してディレクトリの所有者(または root ユーザー) の名前に変更Userしたところ、403「禁止」エラーはなくなりました。GroupAlias

  1. /opt/lampp/etc/httpd.confテキストエディタで(たとえば、XAMPPのデフォルトインストールで)「httpd.conf」を開きます。

  2. Find <IfModule unixd_module>、コメントは次のようになります。

    httpd を別のユーザーまたはグループとして実行する場合は、最初に root として httpd を実行する必要があります。

    ユーザー/グループ: httpd を実行するユーザー/グループの名前 (または番号)。

    通常、ほとんどのシステム サービスと同様に、httpd を実行するための専用のユーザーとグループを作成することをお勧めします。

    デフォルトUserで にGroup設定されていますdaemon

  3. と を編集しUserますGroup

例えば:

<IfModule unixd_module>
  User mrJohn
  Group mrJohn
</IfModule>

これが役に立つことを願っています。

于 2014-12-18T15:59:27.187 に答える
4

For me worked this solution:

When I access the virtual directory an error “Access forbidden! Error 403” occured.
The config seems to ok:

Alias /static/ /home/username/sites/myblog/static/
<Directory /home/username/sites/myblog/static> Options Indexes FollowSymLinks MultiViews ExecCGI AllowOverride All Order allow,deny Allow from all </Directory>
Solution: The default apache configration is very restrictive. It do not allow to access directories without authentication. This is defined in the Directory section of httpd.conf: <Directory> AllowOverride none Require all denied </Directory>
Add a “require all granted” directive to your virtual directory section will grant the access.

Alias /static/ /home/username/sites/myblog/static/ <Directory /home/username/sites/myblog/static> AllowOverride All Order allow,deny Allow from all Require all granted </Directory>

于 2019-01-08T10:35:43.043 に答える
0

ドキュメントルート外のディレクトリにアクセスできましたが、このスレッドへの最初の質問で提案された方法を使用しました。

   # Create Alias to access files for pure js front end app
   Alias "/hbt" "/dirA/dirB/dirC"

   # Create a Directory directive for "dirC"
   <Directory /dirA/dirB/dirC>
     Require all granted
   </Directory

Apacheを再起動すると、うまくいきました!私はApache 2.4を使用しています

于 2020-08-03T06:41:36.507 に答える