web-dev-qa-db-ja.com

オプション+ FollowSymLinksとは何ですか?

コンピューターでLampサーバーを使用しています。 Laravel php framework。を使用し始めました。Options+ FollowSymLinksを使用すると、500エラーが発生します。コメントアウトすると、index.phpをすべて使用する必要がありますアドレス..example:

/~ytsejam/blog/public/index.php/login

私はArch Linuxを使用しています。それを解決する方法はありますか?

編集:仮想ホストを使用してこれを解決しました。そして、laravelフォルダーのapplication/config/application.phpからindex.phpを削除します。

28
ytsejam

「ここでは許可されていない.htaccessオプション」をインターネットで検索してみてください。

私が見つけた提案は(グーグルを使用して)です:

Httpd.confファイルにAllowOverride Allがあることを確認してください。

Mint Linuxで動作する.htaccessファイル(Laravel/publicフォルダーに配置):

# Apache configuration file
# http://httpd.Apache.org/docs/2.2/mod/quickreference.html

# Turning on the rewrite engine is necessary for the following rules and
# features. "+FollowSymLinks" must be enabled for this to work symbolically.

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine On
</IfModule>

# For all files not found in the file system, reroute the request to the
# "index.php" front controller, keeping the query string intact

<IfModule mod_rewrite.c>
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

これがお役に立てば幸いです。そうでない場合は、Laravelフォーラム(http://forums.laravel.com/))で質問することができます。

14
Hendrik Jan

パラメーターOptions FollowSymLinksを使用すると、webrootで他のファイル/ディレクトリを指す symlink を使用できます。これを無効にすると、Apacheはそのようなシンボリックリンクに従うことを拒否します。代わりに、より安全なOptions SymLinksIfOwnerMatchを使用できます-これにより、所有する他のファイルにのみリンクできます。

メインのApache構成で禁止されているパラメーターで.htaccessOptionsディレクティブを使用すると、サーバーはHTTP 500エラーコードを返します。

許可される.htaccessオプションは、メインのApache構成ファイルのディレクティブ AllowOverride によって定義されます。シンボリックリンクを許可するには、このディレクティブをAllまたはOptionsに設定する必要があります。

シンボリックリンクの使用を許可することに加えて、このディレクティブは.htaccessコンテキストでmod_rewriteを有効にするためにも必要です。ただし、このためには、より安全なSymLinksIfOwnerMatchオプションも使用できます。

5
Marki555

WebサイトにアクセスしてWebブラウザーで/ system/files/imagesフォルダーを参照すると、サーバーは/ picturesフォルダーからimage.pngをプルする必要があることをどのように認識しますか?いわゆるシンボリックリンクは、この動作を担当します。システムのどこかに、サーバーに「訪問者が/system/files/images/image.pngを要求したら、/ pictures/image.pngを表示する」というシンボリックリンクがあります。

そして、これにおけるFollowSymLinks設定の役割は何ですか?

FollowSymLinksはサーバーのセキュリティに関連しています。 Webサーバーを扱うとき、物事を未定義のままにしておくことはできません。誰が何にアクセスできるかを伝える必要があります。 FollowSymLinks設定は、サーバーにシンボリックリンクに従うかどうかを指示します。つまり、このケースでFollowSymLinksが無効になっている場合、/ system/files/images/image.pngファイルを参照すると、他の設定に応じて403(アクセス禁止)または404(見つかりません)エラーが返されます。

http://www.maxi-pedia.com/FollowSymLinks