如何让nginxnginx不支持thinkphpP框架

如何让nginx支持ThinkPHP框架_百度知道
如何让nginx支持ThinkPHP框架
提问者采纳
&&nbsp:9000;&$fastcgi_script_name2;&nbsp:server&&{&{&&&nbsp.*)$&&&&&&set&$path_&&}&fastcgi_param&&&nbsp.htm&&nbsp.+\;&&nbsp.;&&&&&&&&&nbsp.&&&&&^(;{&&nbsp.php/$1&&&&nbsp.&&nbsp.php/;&&$document_root$fastcgi_script_name2;&&nbsp!-e&}&&&&\.127;&&nbsp.&&(;&&&&&&nbsp,SCRIPT_NAME服务器环境变量&$fastcgi_script_name2&&&&&&&&nbsp,修改&&&&&&&&&&/var/www/html/&&&$1;&}&&fastcgi_param&&^/(;&&&&&&nbsp.0;&&&&&&&;&{&index&&/&&&&&服务器环境变量&&&&&&&&&include&&&&rewrite&&&&&&if&location&&&&&fastcgi_index&&&fastcgi_param&&nbsp?s=$1&&&nbsp.conflocation&&&&root&)&rewrite&&&&$fastcgi_script_name2&nbsp.+)$&&&PATH_INFO&(;&&nbsp.0;&&$request_filename)&&{&&&&&($fastcgi_script_name&&~&if&&&&nbsp?;&&&&&{&&#加载Nginx默认&&nbsp.;&&&&&nbsp.&&nbsp.php)(/.html&&&$fastcgi_script_set&&&&&&&&&&&{&$2;}&&#访问路径的文件不存在则重写URL转交给ThinkPHP处理&/&&nbsp.;&&&//&&&&&&#设置PATH_INFO并改写SCRIPT_FILENAME;set&&&nbsp.1;/&&&&&配置&&&&&&&&&&&&&$request_filename)&&&&nbsp!-e&&&SCRIPT_FILENAME&&&…;if&&&/&nbsp.省略部分代码&nbsp.*)$&SCRIPT_NAME&&}给你一个补全的;fastcgi_pass&&&nbsp.*$&~&&&&&&&&&&&&&&&^(;&&&&&location&$path_info&&&&nbspThinkphp开发手册里面是有介绍的
其他类似问题
为您推荐:
thinkphp的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁让Nginx/tengine支持ThinkPHP/phpmvc框架/iwebshop的URL重写和PATHINFO
最近帮一个客户迁移网站
windows&2003&&+&apache&
centos5.8+tengine
发现iwebshop的伪静态真心的难对付
研究了好久&直接贴出代码
location&/&{
&&&&&index&&index.
&&&&&if&(!-e&$request_filename)&{&
&&&&&&&&&rewrite&&^/(.*)$&&/index.php/$1&&
&location&~&.+\.php($|/)&{
&&&&&set&$script&&&&$
&&&&&set&$path_info&&"/";
&&&&&if&($uri&~&"^(.+\.php)(/.+)")&{
&&&&&&&&&set&$script&&&&&$1;
&&&&&&&&&set&$path_info&&$2;
&&&&&&&&&&
&&&&&fastcgi_pass&127.0.0.1:9000;
&&&&&fastcgi_index&&index.php?IF_REWRITE=1;
&&&&&include&fastcgi_params.
&&&&&fastcgi_param&PATH_INFO&$path_
&&&&&fastcgi_param&SCRIPT_FILENAME&&$document_root/$
&&&&&fastcgi_param&SCRIPT_NAME&$
还有一个地方需要注意的是,Nginx配置文件里&if&和后面的括号之间要有一个空格,不然会报unknown&directive错误。如何让nginx支持ThinkPHP框架_百度知道
如何让nginx支持ThinkPHP框架
提问者采纳
你是指url模式还是指其他的?只要你的环境支持php,就可以支持thinkphp
其他类似问题
为您推荐:
thinkphp的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁(Nginx和PHP下)URL重写,TP实现URL重写
(Nginx和PHP下)URL重写,TP实现URL重写
[摘要:UrlRewrite便是我们平常道的地点重写,用户获得的全体皆是经由处置惩罚后的URL地点。 长处 一:进步平安性,能够有用的幸免一些参数名、ID等完整裸露正在用户眼前,若是用户任意治输的话]
UrlRewrite就是我们通常说的地址重写,用户得到的全部都是经过处理后的URL地址。
一:提高安全性,可以有效的避免一些参数名、ID等完全暴露在用户面前,如果用户随便乱输的话,不符合规则的话直接会返回个404或错误页面,这比直接返回500或一大堆服务器错误信息要好的多
二:美化URL,去除了那些比如*.do之类的后缀名、长长的参数串等,可以自己组织精简更能反映访问模块内容的URL
三:更有利于搜索引擎的收入,通过对URL的一些优化,可以使搜索引擎更好的识别与收录网站的信息
地址重写一般是用于将动态地址伪静态。如果本身就是静态就没必要了。地址重写后网站制作者可以通过输入地址名直接访问。
Thinkphp的.htaccess文件配置URL的一些重写规则
在thinkphp的案例中有一个.htaccess文件,里面配置了URL的一些重写规则,如:
&IfModule mod_rewrite.c&
& RewriteEngine on
& RewriteCond %{REQUEST_FILENAME} !-d
& RewriteCond %{REQUEST_FILENAME} !-f
& RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
&/IfModule&
它的作用就是设置URL重写以隐藏URL中含有的index.php。一般来说URL过长或者动态化的URL都不利于SEO因此隐藏的目的就是要达到更好的SEO效果。
明白了.htaccess文件的作用,接下来就是让它工作起来。
要使.htaccess文件起作用,通常需要服务器开启URL_REWRITE模块才能支持。
下面是Apache的配置过程:
1、httpd.conf配置文件中加载了mod_rewrite.so模块
& & 在httpd.conf配置文件搜索 LoadModule rewrite_module modules/mod_rewrite.so (Apache2是这个)去掉前面的#
2、AllowOverride None 将None改为 All
& & 在httpd.conf配置文件找到“AllowOverride None”将None改为 All。这点值得注意的是,“AllowOverride None”在文件中能找到几处,但要改的却只有一处。如图所示:
AllowOverride All
3、确保项目(一般是前台项目)配置文件的URL_MODEL设置为2
4、把.htaccess文件放到入口文件的同级目录下
ThinkPHP 利用.htaccess文件的 Rewrite 规则隐藏URL中的 index.php实现
去掉 URL 中的 index.php
ThinkPHP 作为 PHP 框架,是单一入口的,那么其原始的 URL 便不是那么友好。但 ThinkPHP 提供了各种机制来定制需要的 URL 格式,配合 Apache .htaccess 文件,更是可以定制出人性化的更利于 SEO 的 URL 地址来。
.htaccess文件是 Apache 服务器中的一个配置文件,它负责相关目录下的网页配置。我们可以利用 .htaccess 文件的 Rewrite 规则来隐藏掉 ThinkPHP URL 中的 index.php 文件(即入口文件),这也是 ThinkPHP URL 伪静态的第一步。
例如原来的 URL 为:
http://127.0.0.1/index.php/Index/insert
去掉 index.php 之后变为:
http://127.0.0.1/Index/insert
如此一来,就变成了 http://服务器地址/应用模块名称/操作名称[/变量参数] 的常见 URL 格式。
更改 Apache httpd.conf 配置文件
提示:如果在虚拟主机商配置,请直接配置第三、四步,因为支持 .htaccess 的空间已经配置好了前面两步。
用编辑器打开 Apache 配置文件 httpd.conf(该文件位于 Apache 安装目录Apache2conf),并按如下步骤修改,。
一、加载了 mod_rewrite.so
确认加载了 mod_rewrite.so 模块(将如下配置前的 # 号去掉):
LoadModule rewrite_module modules/mod_rewrite.so
二、更改 AllowOverride 配置
更改需要读取 .htaccess 文件的目录,将原来的目录注释掉:
#&Directory &C:/Program Files/Apache Group/Apache2/htdocs&& &Directory E:/html/myapp&
更改 AllowOverride None 为 AllowOverride FileInfo Options ,更改后的配置如下所示:
#&Directory &C:/Program Files/Apache Group/Apache2/htdocs&& &Directory E:/html/myapp&
AllowOverride FileInfo Options &/Directory&
.htaccess 是基于目录来控制的,&Directory E:/html/myapp& 该句即表示需要读取 .htaccess 文件的目录,要根据实际具体 Apache 的解析目录来配置。虚拟主机如果提供 .htaccess 控制,一般都已经配置好了。
三、添加 .htaccess 文件 Rewrite 规则
在需要隐藏 index.php 的目录下(本教程中为 E:/html/myapp,也即入口文件所在目录)创建 .htaccess 文件,并写入如下规则代码:
&IfModule mod_rewrite.c& RewriteEngine on
#不显示index.php
RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
&/IfModule&
如果网站已经有 .htaccess 文件,在里面添加该段配置规则即可。如果不能创建该文件(Windows 平台不能创建),可以从本站下载该文件,但该文件仅配置了隐藏 index.php 的规则,点击此处下载。
四、更改项目配置文件
编辑项目配置文件 Conf/config.php ,将 URL 模式配置为 2(Rewrite模式):
'URL_MODEL'=&2,
至此,各个配置已经完成。保存各配置文件后,重启 Apache 服务器并删除 Runtime 目录下的项目缓存文件,在浏览器访问隐藏 index.php 后的地址测试是否成功:
http://127.0.0.1/html/myapp/Index/index
如果访问成功,那么利用 Apache .htaccess 文件的 Rewrite 规则隐藏 index.php 入口文件的配置就成功了。
thinkphp框架在nginx环境下去掉index.php路径显示
将apache下的一个网站迁移到nginx环境中,结果发现网站用的ThinkPHP框架做的开发,默认用的pathinfo。
这是一个很头疼的问题,因为nginx不支持pathinfo,贸然一并打开也担心不安全。
于是查询资料后整理如下:
找到applications/Conf/的配置文件 config.php
return array(
'URL_MODEL'=&2,& //关于URL更多说明请参考Tinkphp/Common/convention.php
配置 Nginx.conf
在你的虚拟主机下添加
location / {
&&&&& if (!-e $request_filename){
&&&&&&&&&& rewrite ^/(.*)$ /index.php/$1
如果你的项目入口文件在一个子目录内则 &// 这一段重写规则相当重要,什么意思呢?
location /目录/ {
&&&&& if (!-e $request_filename){
&&&&&&&&&& rewrite ^/目录/(.*)$ /目录/index.php/$1
.abu.点评:
测试成功,注意Tinkphp/Common/convention.php
和网站下的applications/Conf/config.php
两个文件 都要修改。
主要就是改成模式2,rewrite方式就可以了。
感谢关注 Ithao123ThinkPHP频道,是专门为互联网人打造的学习交流平台,全面满足互联网人工作与学习需求,更多互联网资讯尽在 IThao123!
Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
产品设计是互联网产品经理的核心能力,一个好的产品经理一定在产品设计方面有扎实的功底,本专题将从互联网产品设计的几个方面谈谈产品设计
随着国内互联网的发展,产品经理岗位需求大幅增加,在国内,从事产品工作的大部分岗位为产品经理,其实现实中,很多从事产品工作的岗位是不能称为产品经理,主要原因是对产品经理的职责不明确,那产品经理的职责有哪些,本专题将详细介绍产品经理的主要职责
IThao123周刊如何让nginx支持ThinkPHP框架_百度知道
如何让nginx支持ThinkPHP框架
last.+&#92.1.*$ {
/www/html/website?;
location ~ \
#加载Nginx默认&quot.0;
fastcgi_param
SCRIPT_NAME
$fastcgi_script_name2;
#访问路径的文件不存在则重写URL转交给ThinkPHP处理
fastcgi_index
index给你一个在线ThinkPHP框架项目的nginx配置文件吧
.conf..+)$&quot.php/
if ($fastcgi_script_name ~ &服务器环境变量&quot.htm index,SCRIPT_NAME服务器环境变量
set $fastcgi_script_name2 $fastcgi_script_name.
location / {
index!-e $request_filename) {
^&#47:9000.0;(;
#设置PATH_INFO并改写SCRIPT_FILENAME;;
fastcgi_pass
127;index.php)(/.*)$
&#47..;var/
set $path_info $2;
fastcgi_param
PATH_INFO $path_info.;配置
fastcgi_param
SCRIPT_FILENAME
$document_root$fastcgi_script_name2.php/) {
set $fastcgi_script_name2 $1;^(
彩虹在线,送给父母的礼物!
主营:通讯设备、产品、电脑、平板硬件和软件开发,手机应用
其他类似问题
为您推荐:
thinkphp的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 thinkphp3.2 nginx 的文章

 

随机推荐