tp5去除index.php的方法:1、使用“\think\url::root('/');”;2、修改htaccess配置,代码如“ rewritecond %{request_filename}...”;3、修改nginx配置即可。
环境:win10 + php7.1 + nginx1.2 + ThinkPHP5 + Dell G3电脑
tp5怎么去除index.php?
TP5 去除url中 index.php 方法
在使用 ThinkPHP5 过程中,用 url 函数生成链接地址时,地址中产生了 index.php
立即学习“PHP免费学习笔记(深入)”;
例:我们要生成一个 /home/news/list.html 的地址,结果生成的地址是 /index.php/home/news/list.html
在手册中 URL 生成篇有介绍:
还可以写成:
\think\Url::root('/');
其它配置:
.htaccess配置 (nginx 可忽略此文件)
<ifmodule> Options +FollowSymlinks -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]</ifmodule>
nginx配置
server{ listen 80;#监听端口 server_name www.demo.com;#域名 index index.html index.htm; root D:/wnmp/demo/public; location / { index index.html index.htm index.php; #autoindex on; if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; } } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$ { expires 30d; # access_log off; } location ~ .*\.(js|css)?$ { expires max; log_not_found off; access_log off; } error_page 500 502 503 504 /50x.html; location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; #下面两句是给fastcgi权限,可以支持 ?s=/module/controller/action的url访问模式 fastcgi_split_path_info ^((?U).+\.php)(/?.+)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #下面两句才能真正支持 index.php/index/index/index的pathinfo模式 fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; include fastcgi_params; } }
推荐学习:《thinkphp教程》