使用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;
}