apache访问thinkphp 403问题、index.php隐藏失败问题

  • Post author:
  • Post category:php


  1. 网上看了很多什么如何安装thinkphp,一开始还以为很复杂,后来发现其实最简单的方法就是下载压缩包然后解压到web站点目录下就好。windows下的apache的是htdocs目录下
  2. 没有通过服务器访问框架的index.php之前,Application文件夹下只有两个文件,没有Common、Home、Runtime这三个文件夹
  3. 如果按照网上的方法去访问,假设thinkphp的安装目录是在htdocs/thinkphp,浏览器访问localhost/thinkphp或者localhost/thinkphp/Public会出现403错误
  4. 对于这个403错误,百度出来的方法都是说是因为apache的访问权限问题,修改和测试了apache的httpd.conf文件的内容,比如directory目录下的内容:Options FollowSymLinK、AllowOverride none、Order allow,deny、 Allow from all,研究半天这几项设置的功能,推荐个链接:

    apache服务器403问题

    ,照着改了之后,发现我的apache会闪退,没办法又改回来了初始设置
  5. 最后,我是这样访问thinkphp的:localhost/thinkphp/index.php,具体原因我现在还没有搞懂,可能就是一些thinkphp的index入口路径隐藏问题?
  6. 出现正常的thinkphp欢迎页面之后再去看Application的文件夹,会发现新增了一个子文件夹,就可以了。

    403页面

    成功访问页面

文件夹内容

补充:关于index.php隐藏的问题,终于解决了

先按照网上的经验设置一番:

  1. 入口文件同级目录下的.htaccess文件设置几行内容,我的是打开就有这些内容了,并没有修改什么:

    Options +FollowSymlinks

    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

  2. 网上介绍说需要修改apache的httpd.conf的内容,将Allow Override None改为AllowOverride all,是没有必要的,我后来又改成none了;
  3. apache的httpd.conf: LoadModule rewrite_module modules/mod_rewrite.so前面的#号删掉
  4. 在thinkphp下的application的common模块的config.php中添加配置:‘URL_MODEL’=>‘2’;
  5. 以上四步是网上的大部分过程,我一开始试了很多遍,发现还是得添加index.php才能访问到,最后发现是这个问题——apache的httpd.conf文件中的DirectoryIndex没有指定index.php为默认入口文件,一开始只设置了indexhtml,那样的话是不会认同index.php的,加上它就好,最后,我的设置是:

    DirectoryIndex index.html index.php



版权声明:本文为qq_34376715原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。