thinkphp路由配置
在下文中,我们将详细探讨thinkphp路由配置以及thinkphp50,并提供一些有用的技巧和建议。
本文内容目录一览:
- 1、nginx怎么让thinkphp路由模式设置
- 2、关于thinkphp配置路由无效果的解决方案
- 3、thinkphp 配置路由
- 4、thinkphp 3.1 路由怎么设置?
- 5、ThinkPHP5静态地址路由和动态路由的区别?
- 6、thinkphp 怎样动态配置路由,怎样从数据库调取数据来配置路由
nginx怎么让thinkphp路由模式设置
首先THINKPHP配置文件中设置
//url访问模式为rewrite模式
'URL_MODEL'='2',
然后再在nginx.conf文件中,找到这一条语句 #access_log logs/host.access.log main;
找到location /{}这个语句段落
location / {
index index.html index.htm index.php;
#如果请求既不是一个文件,也不是一个目录,则执行一下重写规则
if (!-e $request_filename)
{
#地址作为将参数rewrite到index.php上。
#rewrite ^/(.*)$ /index.php/$1;
#若是子目录则使用下面这句,将subdir改成目录名称即可。
rewrite ^/company/(.*)$ /company/index.php/$1;
}
}
然后根据自己的路径重启nginx服务器
# path/nginx -s reload你看过后很简单吧以后不会可以向我一样经常到后盾人平台找找相关教材看看就会了,希望能帮到你,给个采纳吧谢谢\(^▽^)/!
关于thinkphp配置路由无效果的解决方案
1、打开“config.php”,找到'url_route_on',改为true
2、打开“route.php”,例如:“” 改为“api.hyxx.com/user/2”(api.hyxx.com为之前设置的二级域名)。那么就在return中写成 '/user/[:index]' = ['/Index.php/api/user/index/id/2',['method'='get']],
例如:“”改为“api.hyxx.com”.。就写成 ' '=['/index.php/api',['method'='get']],
里面的请求方式,自己去试探。
thinkphp 配置路由
这种效果单凭用thinkphp的配置是实现不了的,要想实现首先应该考虑隐藏入口文件。
以下是几种环境下的配置:
apache:
1.httpd.conf配置文件中加载了mod_rewrite.so模块 //在APACHE里面去配置
#LoadModule rewrite_module modules/mod_rewrite.so把前面的警号去掉
2.AllowOverride None 讲None改为 All //在APACHE里面去配置
Directory "D:/server/apache/cgi-bin"
AllowOverride none 改 AllowOverride ALL
Options None
Order allow,deny
Allow from all
/Directory
3.确保URL_MODEL设置为2,
在项目的配置文件里加入
return Array(
// .....
'URL_MODEL' = '2',
// .....
);
4 .htaccess文件必须放到跟目录下
这个文件里面加:
IfModule mod_rewrite.c
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
/IfModule
补充:在windows下不能建立以点开头的文件,你可以先随便建立一个文件
然后在DOS在操作 rename xxxx.xxxx .htaccess
IIS环境:
如果你的服务器环境支持ISAPI_Rewrite的话,可以配置httpd.ini文件,添加下面的内容:
RewriteRule (.*)$ /index\.php\?s=$1 [I]
在IIS的高版本下面可以配置web.Config,在中间添加rewrite节点:
rewrite
rules
rule name="OrgPage" stopProcessing="true"
match url="^(.*)$" /
conditions logicalGrouping="MatchAll"
add input="{HTTP_HOST}" pattern="^(.*)$" /
add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /
add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /
/conditions
action type="Rewrite" url="index.php/{R:1}" /
/rule
/rules
/rewrite
Nginx环境:
在Nginx低版本中,是不支持PATHINFO的,但是可以通过在Nginx.conf中配置转发规则实现:
location / { // …..省略部分代码
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}
其实内部是转发到了ThinkPHP提供的兼容模式的URL,利用这种方式,可以解决其他不支持PATHINFO的WEB服务器环境。
如果你的ThinkPHP安装在二级目录,Nginx的伪静态方法设置如下,其中youdomain是所在的目录名称。
location /youdomain/ {
if (!-e $request_filename){
rewrite ^/youdomain/(.*)$ /youdomain/index.php?s=$1 last;
}
}
thinkphp 3.1 路由怎么设置?
//比如配置为default.html路由配置
'URL_ROUTER_ON'=true,
'URL_ROUTE_RULES'=array(
'default'='Home/Index/index',
),
模板中:{:U('/default')}
ThinkPHP5静态地址路由和动态路由的区别?
静态路由:指的是路由是固定的,是在配置文件里面固定好的。
动态路由:路由带有参数或者使用正则表达式进行匹配。
两者都是在配置文件中进行设置,最大的区别就是静态路由是固定的,一条路由规则匹配一条url,而动态路由就是一条路由匹配多多条url,简单来说。静态路由是一对一,动态路由是一对多。
thinkphp 怎样动态配置路由,怎样从数据库调取数据来配置路由
用这个方法: Route::get('detail-name-id', 'product/detail');
name和id 后台自己定义内容
例:域名/detail-xxxx-23
xxxx 从数据库调取数据
在设置路由器和WiFi网络时,一定要记得保持安全并定期检查更新以获得最佳体验。