由于项目需要,用ThinkPHP开发的程序链接要去除index.php下面说下如何解决。
一.Nginx方法
由于nginx不支持PATH_INFO,所以需要进入linux终端找到nginx 的配置文件nginx.conf添加如下代码:
location /{ if (!-e $request_filename) ???{ ???????rewrite ^(.*)$ /index.php?s=$1 last; break; ???}}
使用如下:
server ?{ listen 80; ???server_name www.blhere.com; index index.html index.htm index.php; ???root ?/data/htdocs/wwwroot/www; #limit_conn ??crawler ?20; location / ???{ if (!-e $request_filename) ???????{ ???????????rewrite ^(.*)$ /index.php?s=$1 last; break; ???????} ???} ???location ~ .*\.(php|php5)?$ ???{ #fastcgi_pass ?unix:/tmp/php-cgi.sock; fastcgi_pass 127.0.0.1:9000; ?????fastcgi_index index.php; ?????include fcgi.conf; ???} ???location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ ???{ ?????expires 30d; ???} ???location ~ .*\.(js|css)?$ ???{ ?????expires 1h; ???}}
二.apache
[ Apache ]
httpd.conf
配置文件中加载了mod_rewrite.so
模块AllowOverride None
将None
改为All
- 把下面的内容保存为
.htaccess
文件放到应用入口文件的同级目录下<IfModule mod_rewrite.c> ?Options +FollowSymlinks -Multiviews ?RewriteEngine On ?RewriteCond %{REQUEST_FILENAME} !-d ?RewriteCond %{REQUEST_FILENAME} !-f ?RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]</IfModule>
有时候index.php后面加加? ---->index.php?/
参考:https://www.kancloud.cn/manual/thinkphp5_1/353955
转: https://www.cnblogs.com/behindman/p/8667731.html
ThinkPHP在Apache和Nginx下去除index.php方法
原文地址:https://www.cnblogs.com/fps2tao/p/10453550.html