Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
nginx+之后的Silex子目录路由;lighttpd&x2B;重写_Nginx_Routing_Reverse Proxy_Lighttpd_Silex - Fatal编程技术网

nginx+之后的Silex子目录路由;lighttpd&x2B;重写

nginx+之后的Silex子目录路由;lighttpd&x2B;重写,nginx,routing,reverse-proxy,lighttpd,silex,Nginx,Routing,Reverse Proxy,Lighttpd,Silex,我有以下设置:一个带有mod_fcgi for PHP的lighttpd服务器,位于一个充当反向代理的nginx服务器后面。lighttpd根目录映射到nginx的“我的工具”子目录。我可以在lighttpd配置中添加重写规则,但不能触摸nginx 我在lighttpd配置中定义了以下规则: url.rewrite-once += ( "^/my-tool(/[^\?]*)(\?.*)?" => "/index.php$1$2" ) 当我请求路径http://example.co

我有以下设置:一个带有mod_fcgi for PHP的lighttpd服务器,位于一个充当反向代理的nginx服务器后面。lighttpd根目录映射到nginx的“我的工具”子目录。我可以在lighttpd配置中添加重写规则,但不能触摸nginx

我在lighttpd配置中定义了以下规则:

url.rewrite-once += (
    "^/my-tool(/[^\?]*)(\?.*)?" => "/index.php$1$2"
)
当我请求路径
http://example.com/my-tool/bar
在浏览器中,Silex抛出一个
NotFoundHttpException
,因为它找不到
/my tool/bar
——但请求的路由应该是
/bar

删除
/my tool
前缀的最佳/最标准方法是什么?我可以在lighttpd配置中完成吗?我是否必须子类化
Symfony\Component\HttpFoundation\Request
才能在
getInfoPath
中使用
$\u服务器['PATH\u INFO']
?或者在初始化Silex之前,我是否使用一个“肮脏的黑客”并将其从
$\u服务器['HTTP\u X\u ORIGINAL\u URI']
变量中删除

以下是来自
$\u服务器的相关变量:

[ORIG_PATH_TRANSLATED] => /data/project/my-tool/public_html/bar
[ORIG_SCRIPT_FILENAME] => /data/project/my-tool/public_html/index.php/bar
[HTTP_X_ORIGINAL_URI] => /my-tool/bar
[REDIRECT_URI] => /index.php/bar
[REQUEST_URI] => /my-tool/bar
[DOCUMENT_ROOT] => /data/project/my-tool/public_html
[SCRIPT_FILENAME] => /data/project/my-tool/public_html/index.php
[PATH_TRANSLATED] => /data/project/my-tool/public_html/bar
[PATH_INFO] => /bar
[SCRIPT_NAME] => /index.php
[PHP_SELF] => /index.php/bar

您需要在相对URL端包含
index.php
的完整路径,例如:

url.rewrite-once += (
  "^/my-tool(/.*)" => "/my-tool/index.php$1"
)

您需要在相对URL端包含
index.php
的完整路径,例如:

url.rewrite-once += (
  "^/my-tool(/.*)" => "/my-tool/index.php$1"
)

你搞清楚了吗?您是否有机会尝试在Wikimedia工具实验室中配置工具?;)你搞清楚了吗?您是否有机会尝试在Wikimedia工具实验室中配置工具?;)