Nginx兼容框架的pathinfo模式与URL…
2013-09-13 15:43
344 查看
几乎所有的框架(ThinkPHP,Zend
Framework,CI,Yii等)都会使用URL重写或者pathinfo模式,使URL看起来更美观,并且有利于搜索引擎优化,其实让Nginx支
持pathinfo也不难,首先在php.ini中设置cgi.fix_pathinfo=1
再就是添加配置文件 内容如下:
if ($request_filename ~* (.*).php) {
set $php_url $1;
}
if (!-e $php_url.php) {
return 403;
}
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
set $path_info "";
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;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
这样Nginx就支持pathinfo了
对于URL重写也比较简单 例如对于THINKPHP可以这样设置
location / {
if (!-e $request_filename){
#rewrite ^(.*)$ /index.php?s=/$1 last;
rewrite ^(.*)$ /index.php/$1 last;
}
}
Framework,CI,Yii等)都会使用URL重写或者pathinfo模式,使URL看起来更美观,并且有利于搜索引擎优化,其实让Nginx支
持pathinfo也不难,首先在php.ini中设置cgi.fix_pathinfo=1
再就是添加配置文件 内容如下:
if ($request_filename ~* (.*).php) {
set $php_url $1;
}
if (!-e $php_url.php) {
return 403;
}
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
set $path_info "";
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;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
这样Nginx就支持pathinfo了
对于URL重写也比较简单 例如对于THINKPHP可以这样设置
location / {
if (!-e $request_filename){
#rewrite ^(.*)$ /index.php?s=/$1 last;
rewrite ^(.*)$ /index.php/$1 last;
}
}
相关文章推荐
- nginx、TP框架实现兼容pathinfo和rewrite两种url访问方式
- Nginx兼容框架的pathinfo模式与URL重写
- nginx、TP框架实现兼容pathinfo和rewrite两种url访问方式
- nginx、TP框架实现兼容pathinfo和rewrite两种url访问方式
- nginx---支持php 框架 pathinfo 模式
- Nginx下实现pathinfo及ThinkPHP的URL模式
- 在nginx中配置pathinfo模式支持thinkphp的URL重写
- 详解ThinkPHP支持的URL模式有四种普通模式、PATHINFO、REWRITE和兼容模式
- Nginx下使Thinkphp URL模式支持PATHINFO和REWRITE
- Nginx下使Thinkphp URL模式支持PATHINFO和REWRITE
- 如何在安装的lnmp一键环境包(nginx)启用pathinfo URL模式
- nginx配置支持pathinfo模式的url访问(原创)
- 如何在nginx环境中启用php的pathinfo URL模式[修正]
- ThinkPHP中pathinfo的两种模式、四种路径访问模式和URL重写
- nginx 配置https(可支持thinkphp的pathinfo模式)
- 配置nginx,支持php的pathinfo路径模式
- nginx支持url的PATHINFO
- thinkphp在Nginx下使用PATHINFO模式显示no input file specified的解决方法
- springMVC框架在js中使用window.location.href请求url时IE不兼容问题解决
- nginx下pathinfo模式