ECOS采用pathinfo做资源定位,所以要求$_SERVER环境变量中必须要有PATHINFO或则ORGI_PATHINFO
一般在apache或者iis下都没有什么问题,但是在nginx下需要对配置文件做一些设置才可以
把下面的代码保存为pathinfo.conf文件,存放在nginx的conf目录下
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "(.+?\.php)(/.+)") {
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
在站点的php引擎调用段的最下面包含这个文件就行了。下面提供一个真实的样例:
主配置文件
server
{
listen 80;
server_name 192.168.6.141;
index index.html index.htm index.php;
root /srv/http;
autoindex off;
location ~ .*\.php
{
include php_fcgi.conf;
include pathinfo.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)$
{
expires 1h;
}
access_log off;
location /nginx_status {
stub_status on;
access_log off;
}
}
这个地方有一个地方需要注意,就是对php文件的捕获必须是这样的形式
location ~ .*\.php
以往的
location ~ .*\.php$
形如/index.php/shopadmin/xxxx/yyyy这样的请求将不会进入php fastcgi处理器。
rewrite
如果想把index.php也隐藏掉,可用下面的rewrite规则
location / {
if (!-e $request_filename) {
rewrite ^/(.+\.(html|xml|json|htm|php|jsp|asp|shtml))$ /index.php/$1 last;
}
}
location ~ .*\.php
{
include php_fcgi.conf;
include pathinfo.conf;
}
分享到:
相关推荐
在Nginx服务器环境中,配置PathInfo模式是为了支持如PHP框架(例如ThinkPHP)中URL路由的特殊形式,其中URL中的参数部分会跟在.php文件名后面。PathInfo模式允许服务器将这部分信息传递给后端的FastCGI进程,以便...
最近一个项目中使用了ThinkPHP做为开发框架,URL上我们使用了PATHINFO模式,但是Nginx默认是不支持PATHINFO的,需要进行手动配置才可以,于是我们按照了以下方法进行了Nginx的PATHINFO支持配置:修改nginx.conf,...
在启用PATH_INFO时,为了避免与pathinfo.conf中相关的指令冲突,需要对nginx.conf文件中的try_files指令进行处理。具体操作是将其注释掉,这样Nginx就不会直接尝试提供文件,而是根据配置规则处理请求。 具体操作...
Ubuntu下Nginx配置ThinkPHP的Pathinfo和URL Rewrite模式知识点: 1. Nginx与Ubuntu的关系:Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Ubuntu是一种以Linux为基础的操作系统,通常...
在Nginx服务器环境下,配置pathinfo和ThinkPHP的URL Rewrite模式是运行ThinkPHP框架的关键步骤。这使得URL更加简洁且符合SEO优化,同时也能够更好地处理动态请求。下面将详细介绍如何进行这些配置。 首先,我们需要...
总结来说,这个Nginx配置示例展示了如何在不显示index.php的情况下处理PHP请求,并启用Pathinfo模式。在实际应用中,根据服务器的具体情况,可能需要进行一些调整,例如更改监听端口、服务器名称、文档根目录等。...
在Nginx中配置PATHINFO隐藏`index.php`,主要是通过调整Nginx的配置文件来实现。下面我们将详细讲解如何进行这项配置。 首先,我们需要在Nginx的配置文件(通常位于`/etc/nginx/nginx.conf`或`/etc/nginx/sites-...
Nginx配置支持ThinkPHP的PATH_INFO的知识点可以分为以下几个部分: 1. PATH_INFO的介绍: PATH_INFO是指在URL中,位于应用程序可执行脚本名称之后的路径信息。在许多PHP框架中,如ThinkPHP,PATH_INFO被用作一种...
总之,通过在Nginx配置文件中添加适当的rewrite规则,即使在低版本的Nginx环境下,也能成功启用ThinkPHP的PATHINFO模式,从而确保URL路由的正常工作。这是一个对开发者非常重要的步骤,因为它允许应用程序保持优雅的...
首先,我们来看Nginx配置的基本结构。在Nginx的配置文件中,通常有一个或多个`server`块,每个`server`块代表一个域名或IP地址的监听配置。下面是一个基本的Yii2项目配置示例: ```nginx server { charset utf-8; ...
标题中的“让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享”是指在使用Nginx作为Web服务器时,如何配置Nginx以适应ThinkPHP框架的URL重写规则和PATHINFO模式。ThinkPHP是一款流行的PHP开发框架,它的URL重写功能...
总的来说,正确配置Nginx以支持CodeIgniter的Path Info模式,需要理解URL路由的工作原理,以及如何在Nginx配置文件中处理这些路由。通过设置正确的PHP环境变量和使用rewrites,我们可以确保CodeIgniter能够正确地...
首先,配置Nginx支持Pathinfo模式是为了更好地处理PHP请求,尤其是在使用像Yii、ThinkPHP等依赖Pathinfo模式的PHP框架时。Pathinfo模式允许在URL中保留PHP脚本名,如`example.com/index.php/controller/action`。要...
在Nginx配置中,解决PATHINFO模式不支持的关键在于正确配置`location`指令。通常,Nginx默认可能无法识别这种模式,因为它依赖于`fastcgi_params`中的设置。以下是一份示例配置: ```nginx location / { root /...
**Yii框架的Nginx配置** Yii框架的Nginx配置主要关注URL重写和PHP处理。以下是一个基本的示例: ```nginx server { set $host_path "/data/site/www.jb51.net"; access_log /data/logs/nginx/...
在Nginx服务器环境下,实现PathInfo以及ThinkPHP框架的URL模式配置是一项常见的任务,它涉及到Web服务器如何处理带有额外路径信息的PHP脚本请求。PathInfo是指在PHP脚本名之后追加的额外路径信息,例如`example....