thinkphp5的url访问问题

最近用thinkphp5在本地运行中,像这种

http://localhost/Home/Goods/g...

网址可以访问,但是一放到远程服务器上,就是localhost换成别的域名就不能访问了,像这样网址

http://其它域名/Home/Goods/goodsInfo/id/104.html

但是加上index.php又可以访问,像这样

http://其它域名/index.php/Home/Goods/goodsInfo/id/104.html

这是为什么呢。。?我的.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>

有没有大神解答一下。。

不好意思编辑一下,本地环境我是用phpstudy的apache。。放到正式环境用的是西部数码,IIS。。

阅读 4.6k
2 个回答

不知道你远程web服务器是什么,下面是常用的web服务器.htaccess 文件配置内容

  • 1)以Apache 为例,需要在入口文件的同级添加.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>
    
  • 2)如果你使用的apache 版本使用上面的方式无法正常隐藏index.php ,可以尝试使用下面的方式配置

    <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 中添加:

    location / { // …..省略部分代码
        if (!-e $request_filename) {
            rewrite ^(.*)$ /index.php?s=/$1 last;
            break;
        }
    }
  • 如果用的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>
  • 关于IIS伪静态配置 参考一下网址 希望对你有帮助

http://www.111cn.net/sys/Wind...

Apache和IIS的重写规则不同,iis是用webconfig。Apache是用根目录下的.htaccess 。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题