我在电脑上使用Lamp服务器。我开始使用Laravel-php框架。在我的.htaccess中,如果我使用Options +FollowSymLinks
,我会得到500个错误。如果我不评论,我必须在我的所有地址中使用index.php
。。示例:
/~ytsejam/blog/public/index.php/login
我使用的是Arch Linux。有办法解决吗?
edit:我通过使用虚拟主机解决了这个问题。并删除laravel文件夹中的index.php from application/config/application.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中有一个指向其他文件/dir的符号链接。禁用此项后,Apache将拒绝遵循这样的符号链接。可以使用更安全的Options SymLinksIfOwnerMatch
,这将允许您只链接到您拥有的其他文件。
若您在.htaccess
中使用Options
指令和Apache主配置中禁止的参数,服务器将返回HTTP 500错误代码。
允许的.htaccess
选项由Apache主配置文件中的指令AllowOverride
定义。要允许符号链接,需要将该指令设置为All
或Options
。
除了允许使用符号链接外,还需要此指令在.htaccess
上下文中启用mod_rewrite。但为此,也可以使用更安全的SymLinksIfOwnerMatch
选项。
当您访问网站并浏览到web浏览器中的/system/files/images文件夹时,服务器如何知道它应该从/pictures文件夹中提取image.png?所谓的象征性联系是指对这种行为负责的人。在您的系统中,有一个符号链接告诉您的服务器"如果访问者请求/system/files/images/image.png,则向他显示/images/images.png。"
FollowSymLinks设置在其中的作用是什么?
FollowSymLinks与服务器安全性有关。在处理web服务器时,不能只保留未定义的内容。你必须告诉谁可以访问什么。FollowSymLinks设置告诉服务器是否应遵循符号链接。换句话说,如果FollowSymLinks在我们的案例中被禁用,浏览到/system/files/images/png文件将根据其他设置返回403(禁止访问)或404(找不到)错误。
http://www.maxi-pedia.com/FollowSymLinks