.htaccess子域重写在Laravel中

时间:2015-06-23 15:25:47

标签: php apache .htaccess laravel

我有一个使用标准.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

1 个答案:

答案 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中,并报告服务器处理的所有请求。