子目录中的Azure和CakePHP 3 我的第一个问题是,我无法使CakePHP 3在Azure中的hosten子目录中正常工作(因此我必须使用web.config来重写规则) 我想配置我的顶级web.config,以便在根目录下有其他php文件,并且在这些文件上有一些重写规则
我试图实现的结构: -file1.php -file2.php -folder/file3.php -index.php -/包含cakePHP 3的仪表板/目录 例如,我的域名是 我需要在我写的时候做任何和cakePHP相关的事情。如果我写入,我将导航到“用户”控制器中的模板视图“列表”。 我在/dashboard之前写的任何东西我都不会把PHP当作控制器或类似的东西 当前情况 如果我转到正确加载的页面,请立即写入,但因为我正在加载文件中的资源,如:子目录中的Azure和CakePHP 3 我的第一个问题是,我无法使CakePHP 3在Azure中的hosten子目录中正常工作(因此我必须使用web.config来重写规则) 我想配置我的顶级web.config,以便在根目录下有其他php文件,并且在这些文件上有一些重写规则,php,azure,web-config,azure-web-app-service,cakephp-3.x,Php,Azure,Web Config,Azure Web App Service,Cakephp 3.x,我试图实现的结构: -file1.php -file2.php -folder/file3.php -index.php -/包含cakePHP 3的仪表板/目录 例如,我的域名是 我需要在我写的时候做任何和cakePHP相关的事情。如果我写入,我将导航到“用户”控制器中的模板视图“列表”。 我在/dashboard之前写的任何东西我都不会把PHP当作控制器或类似的东西 当前情况 如果我转到正确加载的页面,请立即写入,但因为我正在加载文件中的资源,如: <link href="/webro
<link href="/webroot/backend/pages.css" rel="stylesheet" type="text/css">
资源正在尝试从加载,但未加载
<强>解决方案,我发现我不认为好< /强>
有定义<?php
use Cake\Routing\Router;
$path = Router::url('/', true);
?>
并在资源声明前使用$path。这意味着我必须更改我的所有项目以包含此$path
任何关于重写规则的帮助或Azure子目录中托管cakePHP 3的任何其他人?您可以将
web.config
文件添加到Azure网站的根目录中,默认情况下该文件为:D:\home\site\wwwroot
。并添加重写配置设置,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Rewrite to dashboard" stopProcessing="true">
<match url="^webroot/backend/(.*)$" />
<action type="Rewrite" url="dashboard/webroot/backend/{R:1}"
appendQueryString="false" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
将重定向到:
https://mydomain.azurewebsites.net/dashboard/webroot/backend/pages.css
谢谢,这回答了问题的一部分。这可以解决资源问题,但不能解决cakePHP位于子目录中的问题。在域旁边写的任何东西都被认为是CAKEPHP的一个控制器,它在根目录中定义了一个不同的网站。我正在寻找web.config配置的完整解决方案。您可能还需要将其放入
/dashboard
目录。
https://mydomain.azurewebsites.net/dashboard/webroot/backend/pages.css