• 当前位置: 首页 / 厦门建站百科 / 厦门常见问题
  • ThinkPhp伪静态如何隐藏URL中的index.php?

    时间:2024-05-01 浏览量: 收藏

    针对不同云服务器、虚拟主机,运行PHP的环境也有所不同,目前主要分为:NginxApacheIIS以及其他服务器。此文给大家分享如何隐藏Thinkphp 伪静态URL中的index.php。

    【Nginx服务器】

    在原有的nginx重写文件里新增以下代码片段:
    location / {
        if (!-e $request_filename) {
            rewrite ^(.*)$ /index.php?s=/$1 last;
            break;
        }
    }

    如果是安装在二级目录下,请复制以下代码:
    location /二级目录名/ {
        if (!-e $request_filename) {
            rewrite ^/二级目录名/(.*)$ /二级目录名/index.php?s=/$1 last;
            break;
        }
    }

    如果类似阿里云空间,一个虚拟主机的根目录与二级目录都安装,那么设置如下:

    location / {
        if (!-e $request_filename) {
            rewrite ^(.*)$ /index.php?s=/$1 last;
            break;
        }
    }

    location /二级目录名/ {
        if (!-e $request_filename) {
            rewrite ^/二级目录名/(.*)$ /二级目录名/index.php?s=/$1 last;
            break;
        }
    }

    【apache服务器】

    在apache服务器环境默认自动隐藏index.php入口。

    如果发现没隐藏,可以检查根目录.htaccess是否含有以下红色代码段:
    <IfModule mod_rewrite.c>
    Options +FollowSymlinks -Multiviews
    RewriteEngine on

    #http跳转到https

    #RewriteCond %{HTTPS} !=on
    #RewriteRule ^(.*)$ https://%{SERVER_NAME}/$1 [R,L]
     
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?s=/$1 [QSA,PT,L]
    </IfModule>

    如果还是没有隐藏,可以尝试把红色第四行的代码改为加上个问号试试:  RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
    或者修改为:RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

    如果还是不行,继续查看apache是否开启了URL重写模块 rewrite_module , 然后重启服务就行了。

     ThinkPhp伪静态如何隐藏URL中的index.php?(图1)


    伪静态    Nginx    Apache    IIS    

    顶一下
    (0)
    0.00%
    踩一下
    0
    0.00%

    加载中~

    Copyright © 2012-2024 世敏网络 版权所有   闽ICP备18026760号-1    闽公网安备 35020502000640号   网站地图    Sitemap   关键词聚合

    世敏网络

    您已成功复制微信号,去微信立即添加好友!

    打开微信

    Wechart

    点击下方复制按钮,复制微信号!

    jzm866081

    https://www.xmsmwl.cn
    厦门世敏网络科技有限公司

    点击这里联系在线客服
    嘿!有什么能帮到您的吗?