旗下导航:搜·么
当前位置:网站首页 > PHP教程 > 正文

php runtime、http web中rewrite浅解和计划【php教程】,runtime,rewrite

作者:搜教程发布时间:2019-11-26分类:PHP教程浏览:64评论:0


导读:本文针对函数盘算的phpruntimeweb相干应用开辟,供应一个简朴完成urlrewrite的计划,在引见计划之前,我们先看看相干的几个观点:伪静态页面,动态页面,...
本文针对函数盘算的 php runtime web 相干应用开辟, 供应一个简朴完成url rewrite的计划,在引见计划之前,我们先看看相干的几个观点: 伪静态页面,动态页面,rewrite.

伪静态

静态网页

比方xxx网站上放了一个abc.html文件,你想接见它就直接输入xxx. com/abc.html。Web服务器看到如许的地点就直接找到这个文件输出给客户端。

动态网页

如果你想做一个显现当前时刻的页面,那末就能够写个PHP文件,然后接见xxx. com/abc.php。Web服务器看到如许的地点,找到abc.php这个文件,会交给PHP实行后返回给客户端。而动态网页每每要输入参数,所以地点就变成xxx. com/abc.php?a=1&b=2。

搜索引擎比较烦这类带问号的动态网页,由于参数能够随意加,而返回内容却稳定,所以会对这类网页降权。因而有了mod_rewrite,它能够从新映照地点。

rewrite

比方当前这个页面的地点 http://www.xxx.com/post/20153311,Web服务器收到要求后会从新映照为 www.xxx.com/post.php?id=20153311,然后再实行谁人PHP顺序。(以上网址均为假定)如许,在内部不转变的情况下,对外显现出来的网址变成了没有问号的象静态网页的网址一样。因而有人给起了个名字叫“伪静态”。实在也没什么伪的,就是没有问号的静态网址,让搜索引擎惬意点罢了。

函数盘算 php runtime 简朴完成 rewrite 的一种要领

先以简朴的nginx 中的一个简朴的 rewrite 为例:

location ~ ^/(\w+)$ {
    rewrite /index.php?sub=$1;
}
location ~ ^/post/(\w+)/(\d+)$ {
    rewrite /post.php?class=$1&id=$2;
}

php url rewrite 简朴完成

<?php
function rewrite_urls($s) 
{
    $in = array(
      '|^/post/(\\w+)/(\\d+)$|',
      '|^/(\\w+)$|'
    );
    $out = array(
      '/post.php?class=$1&id=$2',
      '/index.php?sub=$1',
    
    );
    return preg_replace($in, $out, $s); 
}
$post_url = '/post/literatrue/34';
echo rewrite_urls($post_url) .PHP_EOL;
$index_url = '/admin';
echo rewrite_urls($index_url) .PHP_EOL;

实行输出效果:

/post.php?class=literatrue&id=34
/index.php?sub=admin

因此在运用 php runtime的时刻,依据收到要求的uri(假定是/post/literatrue/34), 实行 rewrite_urls 函数(rewrite 划定规矩填写在这个函数的 $in $out 中), 然后将 rewrite 后的 uri (/post.php?class=literatrue&id=34) 作为挪用 fcPhpCgiProxy.requestPhpCgi 函数时,传入参数 $fastCgiParams 的一对 key-value

以上就是php runtime、http web中rewrite浅解和计划的细致内容,更多请关注ki4网别的相干文章!

标签:runtimerewrite


欢迎 发表评论: