地址重写:

urlRewrite: 就是:  1. 将php的地址index.php不写只写Action模块和function方法, 或者 2. php地址转变成html地址, 就是一种假的html,

所以叫伪静态.(除了伪静态外, 还有真的静态化, 就是真的将原来php的页面静态为html, 然后客户请求的就是这个html)

伪静态:  就是只是请求的地址变成了静态, 没有*.php的字样出现, 而实际上服务器还是要进行动态处理).

自己足够强就用thinkphp框架写, 否则就用cms写二次开发

web性能优化:  1. 伪静态 2. 缓存cache

伪静态:

  1. 打开apache的rewrite模块:  #LoadModule  rewrite_module  modules/mod_rewrite.so   在:httpd.conf

  2. 修改每个目录下的:  AllowOverride  None--->All

  3. netstat命令是net命令的加强版(net命令可以简单的管理本地和远程计算机的登录/账户/安全/网络等命令).

      net  start/stop service_name...

  4. 在主入口文件index.php所在的目录下写.htaccess文件, 写上重写规则...

------------------------------------------------

php本身具有数据类型;

但是php的数据类型是动态的: 根据变量的" 字面"取值来确定其类型, $x="abc"; $x=123; 这样的语句是可以的

不会硬性地规定$x是什么类型, 也不会进行类型检查: int $x, 这样的语句在php中是没有多少意义的.

这样更灵活!

设计方法:

可以将表现页面和逻辑页面分开,采用mvc的方法,  如thinkphp框架也可以采用混合书写: 将php和html写在一起的方法, 如ecshop早期的,

并没要哪个比哪个更好, 只要你足够牛, 都可以写出好的web appication

两种代码和风格都要适应,都可以应对.

php面向对象吗?

php是一种混合编程语言, 如同大名鼎鼎的C++一样, 既可以写全局函数, 全局变量, 也可以写面向对象的代码. 跟C++的设计理念

完全一样.  而java和c#则是纯粹的面向对象的编程语言

面向过程, 基于对象(虽然使用了对象, 但是还是以过程化的思维...), 面向对象: 一切皆对象, 对象之间通过消息进行通信: 其中"可替换性"是oop的最重要的一种思想.

面向过程编程 : 是以过程为中心, 以算法为驱动:  程序=算法+数据结构

面向对象编程: 是以对象为中心, 以消息为驱动: 程序=对象+消息

因此: 对php项目中的php文件如何看待? (用c++等的思维和眼光来看php)!

  1. 这些php文件如果是定义的类, 就把它保存为单独的类文件php, 如同C++的类文件一样: Class.h Class.cpp

  2.  同样的php中文件中的全局变量/全局函数, 默认的也是全局的, 可以export的, 如同C++的一样???

============================

php中的static?

在基类/派生类中对成员(变量或函数)的调用方法::分静态还是非静态? 是类的内部还是类的外部?

  一般非静态的成员调用:  类的内部用$this->var;  类的外部:  $obj->var;

       因为类的实例只能是: $obj=new Object();

  对静态的成员:

      类的外部:  只能是 ClassName:: $staticVar, ClassName::staticFun();

      类的内部就分: 自身的类: self::$staticVar, self::staticFun();

              派生类调用基类:  parent::$staticBaseVar, parent::staitcBaseFun()

              基类调用派生类的静态, 用static关键字::   static::$staticDerivedVar,  static::staticDerivedFun()

net命令?

net命令, 如同yum, rpm命令一样, 后面跟子命令: start, stop, user,等等 :

    net start service_name , 而不是: net service_name start/stop.

mvc层的关系?

  c层是控制层, 设计时: 一个控制层一般对应着一个功能模块, 如article文章控制器就对应着文章的功能模块, 其中的方法,就对应着对

    文章模块的操作, 如:增加文章, 删除文章 , 修改文章等等.

  v层和c层之间的对应关系:

    一个控制器(ActionClass)<---> 一个功能模块,  

    那么, 控制器下的方法 <-----> 对应着功能模块下的"方法页面"

        Article控制器对应着article模块, 下面的方法add, delete, modify就应该对应着相应的add.html, delete.html等页面了.

    所以:  有一个controller,就对应地, 要在tpl/default(或者你自己的模板)/ 目录下建一个文件夹:article/

         有一个方法, 就对应的, 要在article/目录下, 建一个add.html页面文件...

thinkphp页面的显示:

  两种方法: 1. 直接在 对应的方法中调用方法:  $this->display();

         2.  向对应的模板文件如:add.html中传递变量值:  $this->assign("变量名", "变量值");

apache本身提供了对php页面的地址重写功能?

  1. LoadModule  rewirte_module  modules/mod_rewrite.so

  2  和.htacess文件的配合.

php url地址重写的更多相关文章

  1. Nginx 的编译安装和URL地址重写

    本文转自:http://www.178linux.com/14119#rd?sukey=ecafc0a7cc4a741b573a095a3eb78af6b4c9116b74d0bbc9844d8fc5 ...

  2. Magento 自定义URL 地址重写 分类分级显示

    我们打算将URL在分类页面和产品页面分别定义为: domain.com/category/分类名.html domain.com/category/子分类名.html domain.com/goods ...

  3. Url地址重写

    一 什么是url重写URL 重写是截取传入 Web 请求并自动将请求重定向到其他 URL 的过程.比如浏览器发来请求 hostname/101.aspx ,服务器自动将这个请求中定向为http://h ...

  4. Apache Nginx URL 地址 重写

    URL重写这东西在工作中用了很多次了,但每次都忘记了要记得把知道的积累下来. 哎,要么认为没必要,要么就是没时间?! 一.Apache 篇 官方地址:http://man.chinaunix.net/ ...

  5. springboot中url地址重写(urlwrite)

    在日常网站访问中,会把动态地址改造成伪静态地址. 例如: 访问新闻栏目 /col/1/,这是原有地址,如果这样访问,不利于搜索引擎检索收录,同时安全性也不是很好. 改造之后: /col/1.html. ...

  6. URL地址重写例子(Helicon)

    # Helicon ISAPI_Rewrite configuration file# Version 3.1.0.86 #RewriteEngine on RewriteRule ^/esf/.+( ...

  7. 【转载】ASP.NET MVC重写URL制作伪静态网页,URL地址以.html结尾

    在搜索引擎优化领域,静态网页对于SEO的优化有着很大的好处,因此很多人就想把自己的网站的一些网页做成伪静态.我们现在在网络上发现很多博客网站.论坛网站.CMS内容管理系统等都有使用伪静态这一种情况,伪 ...

  8. 解决URL中包含“%2F”导致Apache地址重写mod_rewrite失效的问题

    在使用Apache地址重写mod_rewrite期间,发现,当URL和PATH_INFO中出现%2f(/)或者%5c(\), 会被认为这是个不合法的请求, Apache将会直接返回"404 ...

  9. IIS:URL Rewrite实现vue的地址重写

    vue-router 全局配置 const router = new VueRouter({ mode: 'history', routes: [...] }) URL Rewrite 1.添加规则 ...

随机推荐

  1. Java获取客户端IP

    在开发工作中,我们常常需要获取客户端的IP.一般获取客户端的IP地址的方法是:request.getRemoteAddr();但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实 ...

  2. 第一章 Javscript的数据类型

      任何编程语言,都会讲到数据类型,那么我在这里也简述下Js的数据类型,在js里判断一个变量的数据类型用typeof() 简单数据类型undefined: 代表一切未知的事物,啥都没有,无法想象,代码 ...

  3. LinuxMint下Docker的安装部署和验证

    通过lsb_release命令查看以下我的LinuxMint发行版, 查看以下我的Linux内核版本, Docker要求Linux内核版本必须在要在3.10以上,显然我们的系统是满足的. 1. Doc ...

  4. chromium获取代码和编译

    转自360公司的一位仁兄,链接地址:http://blog.gclxry.com/?p=364 之前一直是用一个chromium27的代码来研究chromium的代码.自己也调用chromium co ...

  5. java多线程-Semaphore信号量使用

    介绍 信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施, 它负责协调各个线程, 以保证它们能够正确.合理的使用公共资源. 概念 Semaphore分为单值和多值两种,前者 ...

  6. IntelliJ13+tomcat+jrebel实现热部署(亲测可用)

       网上有很多介绍intellij idea整合jrebel插件实现热部署的文章,但是有的比较复杂,有的不能成功,最后经过各种尝试,实现了整合,亲测可用!步骤说明如下:   一.先下载jrebel安 ...

  7. Java-日期转换

    如下: package 时间日期类; import java.text.SimpleDateFormat; import java.util.Date; public class 日期格式转换 { / ...

  8. Java-对象池

    对象池使用的基本思路是:将用过的对象保存起来,等下一次需要这种对象的时候,再拿出来重复使用,从而在一定程度上减少频繁创建对象所造成的开销. 并非所有对象都适合拿来池化――因为维护对象池也要造成一定开销 ...

  9. Java基础-数据类型int,short,char,long,float,double,boolean,byte

    Java语言是静态类型的(statical typed),也就是说所有变量和表达式的类型再编译时就已经完全确定.由于是statical typed,导致Java语言也是强类型(Strong typed ...

  10. replace和replaceAll的区别

      replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是: 1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(Cha ...