コンピューターで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を削除します。
「ここでは許可されていない.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/))で質問することができます。
パラメーターOptions FollowSymLinks
を使用すると、webrootで他のファイル/ディレクトリを指す symlink を使用できます。これを無効にすると、Apacheはそのようなシンボリックリンクに従うことを拒否します。代わりに、より安全なOptions SymLinksIfOwnerMatch
を使用できます-これにより、所有する他のファイルにのみリンクできます。
メインのApache構成で禁止されているパラメーターで.htaccess
でOptions
ディレクティブを使用すると、サーバーはHTTP 500エラーコードを返します。
許可される.htaccess
オプションは、メインのApache構成ファイルのディレクティブ AllowOverride
によって定義されます。シンボリックリンクを許可するには、このディレクティブをAll
またはOptions
に設定する必要があります。
シンボリックリンクの使用を許可することに加えて、このディレクティブは.htaccess
コンテキストでmod_rewriteを有効にするためにも必要です。ただし、このためには、より安全なSymLinksIfOwnerMatch
オプションも使用できます。
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(見つかりません)エラーが返されます。