thinkphp项目在apache服务器中“去掉”index.php后出现找不到url的问题

By admin in 计算机教程 on 2019年7月14日

今天将MAC中Apache环境下的thinkphp项目移植到Windows中得apache环境下。原本都是apache环境,而且配置都一样,死活给我这样的提示:

官方给出文档
开启PHP的伪静态
1,,检测Apache是否支持mod_rewrite
通过php提供的phpinfo()函数查看环境配置,通过Ctrl+F查找到“Loaded
Modules”,其中列出了所有
apache2handler已经开启的模块,如果里面包括“mod_rewrite”,则已经支持,不再需要继续设置。,
2,如果没有开启“mod_rewrite”,则打开目录
您的apache安装目录“/apache/conf/” 下的 httpd.conf 文
件,通过Ctrl+F查找到“LoadModule
rewrite_module”,将前面的”#”号删除即可。
3,如果没有查找到,则到“LoadModule” 区域,在最后一行加入“LoadModule
rewrite_module
modules/mod_rewrite.so”(必选独占一行),然后重启apache服务器即可。
4,以Apache为例,需要在入口文件的同级添加.htaccess文件(官方默认自带了该文件),内容如下:

Not Found

<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>
接下来就可以使用下面的URL地址访问了

The requested URL /2108 was not found on this server.
Apache/2.4.9 (Win64) PHP/5.5.12 Server at www.doubilaile.com Port 80

http://tp5.com/index/index/index
http://tp5.com/index/index/hello
如果你使用的apache版本使用上面的方式无法正常隐藏index.php,可以尝试使用下面的方式配置.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>
如果是Nginx环境的话,可以在Nginx.conf中添加:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 澳门金沙30064在线网站 版权所有