我有一个使用标准.htaccess
文件的Laravel安装,该文件适用于dev.mysite.com
,但在我的开发服务器上我有foo.dev.mysite.com
,另一条路由是{{1} }
路由工作正常,但请求没有被重写为index.php,例如当我转到bar.dev.mysite.com
时,我得到了404,但是当我转到foo.dev.mysite.com/example
时,它就是#{1}}。工作正常。
我有以下foo.dev.mysite.com/index.php?example
文件:
.htaccess
答案 0 :(得分:1)
首先,确保启用了mode_rewrite。我相信你可能已经这样做但我想确保没有错过。另一个测试是删除IfModule
条件并查看它是否失败。
接下来,查看您运行的apache版本,因为语法已在2.2和2.4之间更改。 {2.3}中的Optons
默认值已从All
更改为FollowSymlinks
。这不应该是一个大问题,并怀疑这是罪魁祸首,但可能会在将来为您省去麻烦。
接下来,尝试将重写条件放在vhost信息中而不是htaccess文件中。这有助于提高性能,并在重新启动apache时给你一个控制台警告/错误,其中htaccess错误可能会被压制。
<directory /var/www/mysite.com>
Options -MultiViews
AllowOverride ALL
RewriteEngine On
RewriteRule ^(.*)/$ /$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</directory>
除此之外,如果没有来自服务器的更多日志记录或信息,我将会感到茫然。您还可以将CustomLog
添加到vhost中,并报告服务器处理的所有请求。