ThinkPhp5.0 相对路径转发路径重复问题

    xiaoxiao2023-12-19  144

    (个人经验,仅供参考,错误之处,敬请谅解)

    问题详述

    使用ThinkPhp框架时,路由重写规则如下:

    <IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !^$ RewriteRule ^(.*)$ public/index.php/$1 [QSA,PT,L] </IfModule>

    也就是从项目根目录访问的任何链接重写到public/index.php?REQUEST_URL 这样更方便访问,而不是从public开始访问,框架默认是从public进行重写到index.php?REQUEST_URL

    但在后面的超链接使用相对路径跳转时便遇到了尴尬的问题。

    就像这样:

    localhost:88/TourDiary/index/Index/index/Index/index/Index/showLogin

    从第二个链接开始无论点什么都是到主页。

    解决方案

    解决这个问题,无非就是用绝对路径,当然怎么用绝对路径也是一个问题:

    直接在页面链接中加上项目根目录 /poject_name/index/Idnex…,要改很多,当然麻烦在应用配置或者额外配置中添加view_replace_str 中的’__PATH__’ 为’/project_name/…这样的话,换了服务器运行环境只要更改配置。后面找了到一个能用的常量__ROOT__,是项目目录下的public文件夹,沾沾自喜,更科学点。实际上tp的路由功能,只要定义好路径,那么访问更省事,也不会发生路径重复问题。(最方便科学的)
    最新回复(0)