Laravel用nginx(ajenti)重写规则


Laravel with nginx (ajenti) rewrite rules

我正在尝试将现有的本地网站移动到我的服务器上。我安装了一个在nginx上运行的janti,它不支持.htaccess文件。

我试图隐藏现有的规则,并将它们添加到ajenti中:自定义配置,但没有成功。我也试过这里的规则:http://forumsarchive.laravel.io/viewtopic.php?id=1442但仍然没有运气。

# nginx configuration
location / {
rewrite ^/(.*)/$ /$1 redirect;
if (!-e $request_filename){
rewrite ^(.*)$ /index.php break;
}
}

当我尝试访问网页(例如,/profile)时,我会得到一个404(而不是laravel的404)。

Greetz!

1)首先安装PHP5&卷曲

apt-get install php5-fpm php5-cli php5-mcrypt curl libcurl3 libcurl3-dev php5-curl

2) 启用PHP扩展(如果未启用):

php5enmod mcrypt
php5enmod curl

3) 安装composer

curl -sS https://getcomposer.org/installer | php

4) 将composer移动到/usr/local/bin位置

mv composer.phar /usr/local/bin/composer

5) 创建一个新的laravel项目。

composer create-project laravel/laravel /srv/domain.com/ 4.2.11

6) 保留laravel项目的适当权限或只使用Ajanti魔术按钮
"修复文件权限":

sudo chown -R :www-data /srv/domain.com/
chmod -R 775 /srv/domain.com/app/storage

有时你可能不得不运行一个现有的项目。那时候就把它克隆到你的目录里。

7) 在Ajanti管理面板"网站"中设置网站根路径

/srv/domain.com/public

使用Ajanti按钮"重新启动网站"重新启动Web服务并检查您的域
您可以看到laravel项目界面。

8) 有时你会得到一个错误:

403 error Nginx.

在这种情况下,请转到Ajanti管理面板"网站":
选择domain.com并转到"高级"选项卡。您可以看到"自定义配置"
粘贴到第一个字段此代码:

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

然后重新启动nginx或只需按下Ajanti按钮"重新启动网站"


更新:

如果您想隐藏.php文件extensions,请转到您的网站"自定义配置"并粘贴到第一个字段:

location / {
    try_files $uri $uri/ /$uri.php?$query_string;
}