修改.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]
  #RewriteRule ^(.*)$ public/index.php [L,E=PATH_INFO:$1] 
 # RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
#  RewriteRule ^(.*)$ public/index.php [L,E=PATH_INFO:$1]
#  RewriteRule ^(.*)$ public/index.php [L,E=PATH_INFO:$1]
  
</IfModule>
重启apache,5种方法都无效。
请高手指点一下。 tp版本5.1.36 。环境win7

解决方案 »

  1.   

    就用框架自带的,wamp的话在index.php后面加一个?就行
      

  2.   


    我用这句还是无效。
      RewriteRule ^(.*)$ index.php?/$1[QSA,PT,L]
      

  3.   

    首先看你用的是什么环境 集成的还是独立安装的
    1.Apache
    <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>
    2.phpstudy
    <IfModule mod_rewrite.c> 
    Options +FollowSymlinks -Multiviews 
    RewriteEngine on 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1] 
    </IfModule>看清楚其中的差别  集成环境去掉/$1如果是nginx
    1.lnmp
    直接引用集成环境中的重写信息 有打包好的
    2.nginx
    location / { // …..省略部分代码
        if (!-e $request_filename) {
            rewrite  ^(.*)$  /index.php?s=/$1  last;
            break;
        }
    }
      

  4.   

    我一般是在根上新建一个index.php,内容就是直接跳转到public/index.php。
      

  5.   

    RewriteRule ^(.*)$ public/index.php?/$1[QSA]用这个把 不就是url重写啊。有什么难的。
      

  6.   

    把index.php改到根目录不行吗?我就是这么干的,或者把虚拟主机根目录指向到public/也行啊
      

  7.   

    把index.php和.htaccess复制到根目录,如果报错的话就定义应用目录(手册有讲),然后把目录名称改好
      

  8.   

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