我在内置的PHP开发服务器(运行于:.htaccess
)中使用Drupal站点(带php -S localhost:8888
和干净的URL工作正常),在CMS中我动态生成XML文件我想公开,但是当我尝试打开/foo/bar.xml
时,会发生以下错误:
在此服务器上找不到请求的资源
/foo/bar.xml
。
经过调查,似乎PHP内置服务器假定所有包含点的文件都必须是本地文件系统中的文件。
有没有解决办法?
答案 0 :(得分:2)
根据PHP Built-in web server docs,要处理自定义请求,您需要指定一个返回FALSE
的“路由器”脚本(在命令行中给出),然后按原样返回请求的资源,否则脚本的输出将返回给浏览器。
这是处理图像请求,然后显示它们的简单示例,否则如果请求HTML文件,它将显示“欢迎使用PHP”:
<?php
// router.php
if (preg_match('/\.(?:png|jpg|jpeg|gif)$/', $_SERVER["REQUEST_URI"])) {
return false; // serve the requested resource as-is.
} else {
echo "<p>Welcome to PHP</p>";
}
?>
对于Drupal 7&amp; 8,您可以使用.ht.router.php
文件,然后将其运行为:
php -S localhost:8888 .ht.router.php