很难.htaccess - > CakePHP +前端控制器的nginx重写转换

时间:2015-04-23 20:28:22

标签: linux .htaccess mod-rewrite nginx

使用Apache,以下.htaccess文件放在CakePHP应用程序的根文件夹 - / digital / 中。

[注意:在这个目录之上,在真正的根目录下,有一个非Cake PHP应用程序具有不同的.htaccess配置文件。]

RewriteEngine On

RewriteCond %{HTTP_HOST} ^mywebsite\.com [NC]
RewriteRule ^(.*)$ http://www.mywebsite.com/digital/$1 [R=301,L]

RewriteBase /digital
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

此文件将 / digital / 之后的每个请求URI 转发回前端控制器,作为GET变量(即"?url = x" )。

例如,导航到:

" www.mywebsite.com/digital/admin/login /"

成为:

" www.mywebsite.com/digital/index.php URL = /数字/管理/登录/"

我所做的每一次尝试都会导致重定向循环或失败。

如何在nginx中完成这项工作?特别是没有创建单独的虚拟主机?

编辑 - 我的配置:

  location /digital/ {
  try_files   $uri $uri/ index.php?url=$uri&$args;
  }

0 个答案:

没有答案