• 技术文章 >后端开发 >php教程

    ThinkPHP在SAE下关于url重写的有关问题

    2016-06-13 10:22:41原创273
    ThinkPHP在SAE下关于url重写的问题
    thinkphp。
    根目录下有config.yaml(因为SAE不支持.htaccess)
    内容为:

    name: thinktest
    version: 1
    handle:
    - rewrite: if(!is_dir() && !is_file() && path~"^(.*)$") goto "/index.php/$1"
    - rewrite: if(path~"^/test\.html$") goto "/test.php"

    关键看第二个重写。
    在根目录下有test.html和test.php
    访问test.html的时候可以访问到test.php

    问题是
    有入口文件index.php
    Action里有文件IndexAction.class.php
    其中index操作代码如下:

      echo "";

    即页面跳转。
    同时在Tpl/default/Index/下有test.html和test.php
    此时跳转后不会访问到test.php

    不过如果是跳转到根目录下的test.html的话就没问题。

    是不是跟config.yaml的作用范围有关?还是有其他原因?

    求高手解答!

    ------解决方案--------------------
    thinkphp 的伪静态是通过 PATH_INFO 实现的
    唯一可能需要使用 url 重写的是: 隐藏 index.php 文件名

    thinkphp 是单一入口的,所以不会出现 http://serverName/test.php 这样的 url

    这一点无论是从
    .htaccess 的
    RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
    还是config.yaml的
    - rewrite: if(!is_dir() && !is_file() && path~"^(.*)$") goto "index.php/$1"
    都可以看出:他将域名外的所有内容都转换成了index.php的参数
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:quot test index php amp
    上一篇:出现phpMyAdmin - 异常,无法加载 mysqli (外链,英语) 扩展,请检查您的 PHP 配置 - 文档的几个成功解决办法 下一篇:PHP与MySQL程序设计 (第3版) 高清PDF中文版,该怎么解决
    千万级数据并发解决方案

    相关文章推荐

    • 用PHP实现自己的sha-256哈希算法!• 让php5.1.6支持json_encode()解决方案• 今日开始带两个实习生做php(2)• 求解一题!该怎么解决• zend debugger 如何安装
    1/1

    PHP中文网