仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 726|回复: 18
打印 上一主题 下一主题

[学习教程] PHP网页编程之面向搜刮引擎的URL优化

[复制链接]
活着的死人 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:57:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
第1步环境配置好了,你算了进了1小步了,那么第2步呢 就是调出第1个程序 一般都是用hello world,视频教程里面我都做了,hello world   我在写晋远信息网(www.geofuture.net)时没有思索到URL若何面向seo,完成了今后才入手下手优化的。这时候要思索一方面要静态的URL,一方面要尽可能坚持原本的法式不变以便于今后保护,所以就采取url_rewrite的办法。上面是httpd.conf中响应的局部
<VirtualHost *:80>
    DocumentRoot /home/geofuture
    ServerName www.geofuture.net
    ServerAlias *.geofuture.net geofuture.net *.cic123.com
    DirectoryIndex index.files index.html index.php
    RewriteEngine On
    #RewriteLog logs/rewrite.log
    #RewriteLogLevel 9
    #RewriteRule / http://geofuture.vicp.net/ [L]
    RewriteCond %{REQUEST_FILENAME}    index.files   [OR]
    RewriteCond %{REQUEST_FILENAME}    error.files   [OR]
    RewriteCond %{REQUEST_FILENAME}    cat.files   [OR]
    RewriteCond %{REQUEST_FILENAME}    area.files   [OR]
    RewriteCond %{REQUEST_FILENAME}    info.files   [OR]
    RewriteCond %{REQUEST_FILENAME}    topic.files   [OR]
    RewriteCond %{REQUEST_FILENAME}    post.files   [OR]
    RewriteCond %{REQUEST_FILENAME}    profile.files   [OR]
    RewriteCond %{REQUEST_FILENAME}    userinfo.files   [OR]
    RewriteCond %{REQUEST_FILENAME}    cert.files   [OR]
    RewriteCond %{REQUEST_FILENAME}    revise.files   [OR]
    RewriteCond %{REQUEST_FILENAME}    review.files   [OR]
    RewriteCond %{REQUEST_FILENAME}    feedback.files   [OR]
    RewriteCond %{REQUEST_FILENAME}    keyrank.files   [OR]
    RewriteCond %{REQUEST_FILENAME}    rss.files
    RewriteRule ^(.+?)\Q(.*)$    $1=$2 [N]
    RewriteRule ^(.+?)ZZ(.+)$    $1&$2 [N]
    RewriteRule ^(.+?)\.files(.*)$      $1.php$2 [N]
    RewriteRule ^(.+?)\.php(/|&)(.+).html$      $1.php?$3 [L]
    ErrorDocument 400 /error.php?status=400
    ErrorDocument 401 /error.php?status=401
    ErrorDocument 403 /error.php?status=403
    ErrorDocument 404 /error.php?status=404
    ErrorDocument 405 /error.php?status=405
    ErrorDocument 408 /error.php?status=408
    ErrorDocument 410 /error.php?status=410
    ErrorDocument 411 /error.php?status=411
    ErrorDocument 412 /error.php?status=412
    ErrorDocument 413 /error.php?status=413
    ErrorDocument 414 /error.php?status=414
    ErrorDocument 415 /error.php?status=415
    ErrorDocument 500 /error.php?status=500
    ErrorDocument 501 /error.php?status=501
    ErrorDocument 502 /error.php?status=502
    ErrorDocument 503 /error.php?status=503
    ErrorDocument 506 /error.php?status=506
</VirtualHost>
我只把之内容为主的栏目优化了,至于登录和搜刮等局部坚持不变,由于这些局部也是搜刮引擎不关怀的。同时,一些罕见的形态码(HTTP Status)也有响应的静态页面。下面只修正了外来恳求的URL,而法式生成的URL经由过程上面的代码完成:
<?php
//--------------   SECTION NAME    -----------------------------------
// 静态URL改写成静态
function url_rewrite($buffer)
{
    //return $buffer;
    $search = array(
        '.php',
        '?',
        '&',
        'filesZZ',
        '=',
        'hrefQ',
    );
    $replace = array(
        '.files',
        '/',
        'ZZ',
        'files/ZZ',
        'Q',
        'href=',
    );
    preg_match_all('/href="\/(index|error|cat|area|info|topic| post|profile|userinfo|cert| revise|review|feeback|keyrank|rss) \.php(.*?)"/', $buffer, $match);
    $url = str_replace($search, $replace, $match[0]);
    $url = preg_replace('/\.files(.+?)(#.+?)?"$/', '.files\\1.html\\2"', $url);
    return str_replace($match[0], $url, $buffer);
}
?>
下面的函数界说放在公共头文件外面。然后,在需求优化的页面入手下手处到场以下代码:
ob_start("url_rewrite");
这也是本来的法式独一需求修正的中央。如许做还有一个成绩。 例如我写的分页函数等代码, 都请求本来静态的URL, 而优化了今后经由过程 $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'] 就只能失掉优化今后的静态URL, 一切依附于静态URL的代码都得修正一下, 以可以处置本来的URL和优化的。如许得改写公共头文件的很多代码。所以我就想了一个迂回的举措:
<?php
//--------------   SECTION NAME    -----------------------------------
// 恢复成静态URL
function url_resume($url)
{
    $search = array(
        '.files',
        '.php/',
        'ZZ',
        '/ZZ',
        'Q',
        '.html',
    );
    $replace = array(
        '.php',
        '.php?',
        '&',
        '?&',
        '=',
        '',
    );
    $url = str_replace($search, $replace, $url);
    return $url;
}
?>
有了下面的函数,在需求静态URL的中央只需挪用一下就能够了,而不需重写各个中心函数。需求注重的是,url_rewrite和url_resume固然是相反的进程,然而它们的参数是分歧的。前者的参数是全部缓冲区,后者只是一个单个的URL,由于恢复的情形究竟很少,而全局处置重写可以进步速度。
培训的第三阶段,开始接触MYSQL,设计数据库,学习PHP如何去连接MYSQL数据库。对于MYSQL,我并不陌生,因为学校开设了Linux系统的课程,对于数据库的操作。
透明 该用户已被删除
沙发
发表于 2015-2-4 07:20:14 | 只看该作者
兴趣是最好的老师,百度是最好的词典。
灵魂腐蚀 该用户已被删除
板凳
发表于 2015-2-9 18:46:59 | 只看该作者
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
小女巫 该用户已被删除
地板
发表于 2015-3-2 04:19:44 | 只看该作者
爱上php,他也会爱上你。
不帅 该用户已被删除
5#
发表于 2015-3-4 03:52:04 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
再见西城 该用户已被删除
6#
发表于 2015-3-7 11:58:35 | 只看该作者
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
金色的骷髅 该用户已被删除
7#
发表于 2015-3-11 08:25:29 | 只看该作者
开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。
若相依 该用户已被删除
8#
发表于 2015-3-17 10:47:59 | 只看该作者
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
愤怒的大鸟 该用户已被删除
9#
发表于 2015-3-20 06:38:07 | 只看该作者
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
第二个灵魂 该用户已被删除
10#
发表于 2015-3-25 14:28:19 | 只看该作者
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
老尸 该用户已被删除
11#
发表于 2015-4-17 22:52:35 | 只看该作者
学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
admin 该用户已被删除
12#
发表于 2015-4-26 08:10:46 | 只看该作者
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
山那边是海 该用户已被删除
13#
发表于 2015-4-29 04:24:37 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
飘灵儿 该用户已被删除
14#
发表于 2015-4-30 10:51:50 | 只看该作者
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
飘飘悠悠 该用户已被删除
15#
发表于 2015-5-4 10:29:56 | 只看该作者
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
分手快乐 该用户已被删除
16#
发表于 2015-5-12 13:48:24 | 只看该作者
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
海妖 该用户已被删除
17#
发表于 2015-6-21 21:26:57 | 只看该作者
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
蒙在股里 该用户已被删除
18#
发表于 2015-7-1 01:36:09 | 只看该作者
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
只想知道 该用户已被删除
19#
发表于 2015-7-7 04:11:30 | 只看该作者
遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-22 11:58

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表