tp系统, url分割符 改成使用"-" 后,原先使用 "/"作为分隔符的URL均不能访问,解决方案
来源:互联网 发布:店铺如何申请淘宝直播 编辑:程序博客网 时间:2024/06/10 05:35
URL_PATHINFO_DEPR' => '-', // PATHINFO模式下,各参数之间的分割符号'
导致的问题是 :替换后的网站只支持 "-" 以及 "&args=XX"形式的URL,
由于电商运营推广,旧数据等因素,不能兼容旧的链接的开发优化是无意义的,所以对于网站兼容多种链接就非常必要
解决方案:
在入口文件 index.php中引入TP内核入口文件之前加上一个拦截过滤(目前在我本站调试可行的唯一方案),即在
require THINK_PATH . 'ThinkPHP.php';之前加上 这段过滤代码 (注意必须在引入TP入口文件之前引入)
/*兼容 分隔符为"/"URL 支持分隔符为"-" "/" "&" URL*/$uri = ltrim($_SERVER['REQUEST_URI'], '/');if (strpos($uri, '/') !== false) { $uri = str_replace('/', '-', $uri); $_GET['s'] = $_SERVER['REQUEST_URI'] = $_SERVER['PATH_INFO'] = "/$uri"; $_SERVER['QUERY_STRING'] = "s=/$uri";}
加上这段代码之后,进入本站的链接都会被进行一次过滤,以支持 分隔符为 "/" 的URL的访问
附:
详解 $_SERVER 函数中QUERY_STRING和REQUEST_URI区别
引用自:http://blog.sina.com.cn/s/blog_686999de0100jgda.html
1,http://localhost/aaa/ (打开aaa中的index.php)
结果:
$_SERVER['QUERY_STRING'] = "";
$_SERVER['REQUEST_URI']
$_SERVER['SCRIPT_NAME']
$_SERVER['PHP_SELF']
2,http://localhost/aaa/?p=222 (附带查询)
结果:
$_SERVER['QUERY_STRING'] = "p=222";
$_SERVER['REQUEST_URI']
$_SERVER['SCRIPT_NAME']
$_SERVER['PHP_SELF']
3,http://localhost/aaa/index.php?p=222&q=333
结果:
$_SERVER['QUERY_STRING'] = "p=222&q=333";
$_SERVER['REQUEST_URI']
$_SERVER['SCRIPT_NAME']
$_SERVER['PHP_SELF']
由实例可知:
$_SERVER["QUERY_STRING"]
$_SERVER["REQUEST_URI"]
$_SERVER["SCRIPT_NAME"]
$_SERVER["PHP_SELF"]
注:亦可通过配置 服务器 的,对访问链接进行重写。
(TP 有支持 Apache 的配置,需要在 程序的 .htaccess 文件中 开启重写引擎 )
<IfModule mod_rewrite.c> Options +FollowSymlinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]</IfModule>
Nginx 也支持 重写配置 (暂无了解,需学习)
TP 也可以通过路由规则,模块化的对 URL进行设定,但是因为这种配置,受限度很大,必须对每个链接都很熟,并且确定链接参数键值,才能确保链接正常访问
'URL_ROUTER_ON' => false, // 是否开启URL路由
'URL_ROUTE_RULES' => array(), // 默认路由规则 针对模块
'URL_MAP_RULES' => array(), // URL映射定义规则
- tp系统, url分割符 改成使用"-" 后,原先使用 "/"作为分隔符的URL均不能访问,解决方案
- 使用分隔符分割字符串
- 写一个函数讲一个字符串使用特定的分隔符分割后输出
- 使用struts2框架后servlet不能正常访问的解决方案
- 使用URL访问网络资源
- 使用URL访问网络资源
- 使用PHP访问URL
- 使用url访问servlet
- 使用URL访问网络资源
- 使用URL访问网络资源
- tp nginx url访问问题
- hive 中控制符作为分隔符的使用总结
- Sort使用Tab作为分隔符
- iOS 使用0x01作为分隔符
- Java 用"|"作为分隔符分割字符串
- iis 7 下 url重写后,原本存在的html不能访问了,未能执行 URL
- iis7下url重写后原本存在的html不能访问未能执行URL
- iis7 下 url重写后原本存在的html不能访问了未能执行 URL
- Android中的动画(三)属性动画
- java知识点归纳
- sublime-text3-自定义代码补全
- HealthInfo.java9
- 热豆腐
- tp系统, url分割符 改成使用"-" 后,原先使用 "/"作为分隔符的URL均不能访问,解决方案
- XMPP协议之消息回执解决方案
- Solr与Elasticsearch的选型比较
- php面试题目
- tf.app.run()的作用
- 在Openfire上弄一个简单的推送系统
- rgba()和opacity的区别
- StreamTools.java9
- Java基础---final关键字