php url地址重写
地址重写:
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地址重写的更多相关文章
- Nginx 的编译安装和URL地址重写
本文转自:http://www.178linux.com/14119#rd?sukey=ecafc0a7cc4a741b573a095a3eb78af6b4c9116b74d0bbc9844d8fc5 ...
- Magento 自定义URL 地址重写 分类分级显示
我们打算将URL在分类页面和产品页面分别定义为: domain.com/category/分类名.html domain.com/category/子分类名.html domain.com/goods ...
- Url地址重写
一 什么是url重写URL 重写是截取传入 Web 请求并自动将请求重定向到其他 URL 的过程.比如浏览器发来请求 hostname/101.aspx ,服务器自动将这个请求中定向为http://h ...
- Apache Nginx URL 地址 重写
URL重写这东西在工作中用了很多次了,但每次都忘记了要记得把知道的积累下来. 哎,要么认为没必要,要么就是没时间?! 一.Apache 篇 官方地址:http://man.chinaunix.net/ ...
- springboot中url地址重写(urlwrite)
在日常网站访问中,会把动态地址改造成伪静态地址. 例如: 访问新闻栏目 /col/1/,这是原有地址,如果这样访问,不利于搜索引擎检索收录,同时安全性也不是很好. 改造之后: /col/1.html. ...
- URL地址重写例子(Helicon)
# Helicon ISAPI_Rewrite configuration file# Version 3.1.0.86 #RewriteEngine on RewriteRule ^/esf/.+( ...
- 【转载】ASP.NET MVC重写URL制作伪静态网页,URL地址以.html结尾
在搜索引擎优化领域,静态网页对于SEO的优化有着很大的好处,因此很多人就想把自己的网站的一些网页做成伪静态.我们现在在网络上发现很多博客网站.论坛网站.CMS内容管理系统等都有使用伪静态这一种情况,伪 ...
- 解决URL中包含“%2F”导致Apache地址重写mod_rewrite失效的问题
在使用Apache地址重写mod_rewrite期间,发现,当URL和PATH_INFO中出现%2f(/)或者%5c(\), 会被认为这是个不合法的请求, Apache将会直接返回"404 ...
- IIS:URL Rewrite实现vue的地址重写
vue-router 全局配置 const router = new VueRouter({ mode: 'history', routes: [...] }) URL Rewrite 1.添加规则 ...
随机推荐
- Linux(10.18-10.25)学习笔记
一.学习目标 1. 了解常见的存储技术(RAM.ROM.磁盘.固态硬盘等) 2. 理解局部性原理 3. 理解缓存思想 4. 理解局部性原理和缓存思想在存储层次结构中的应用 5. 高速缓存的原理和应用 ...
- 实验一(不知道怎么上传.docx格式)
北京电子科技学院(BESTI) 实 验 报 告 课程:深入理解计算机系统 班级:1353 姓名:魏静静 文艺 刘虹辰 学号:20135302 20135331 20 ...
- 优秀技能经验及对java学习展望
你有什么技能比身边人强 我觉得我并没有什么技能能够比身边90%的人强,我认为我是一个平庸的人,和身边的人应该是互有长短,互相帮助的. 关于优秀技能的成功经验 我虽然没有一个强过身边90%的人的技能,但 ...
- Thrift搭建分布式微服务(四)
第一篇 <连接配置> 第二篇 <连接池> 第三篇 <标准通信> 第四篇 快速暴露接口 之前的文章,我们介绍了如何使用连接池管理Thrift节点,以及使用Thri ...
- [软件测试]Linux环境中简单清爽的Google Test (GTest)测试环境搭建(初级使用)
本文将介绍单元测试工具google test(GTEST)在linux操作系统中测试环境的搭建方法.本文属于google test使用的基础教程.在linux中使用google test之前,需要对如 ...
- css为什么要用悬浮
如果这个100px的宽度是一个Img,横内元素.右边也是横内元素的话和块级元素是不同的. 2.文字环绕图片. div下有个img然后有个span标签 img最好悬浮,悬浮虽然说脱离文档,但是还是占空间 ...
- Scala 中的函数式编程基础(一)
主要来自 Scala 语言发明人 Martin Odersky 教授的 Coursera 课程 <Functional Programming Principles in Scala>. ...
- 让less编译通过css滤镜
写IE6 hack的时候,发现在less中直接写css滤镜是会报错的,不能编译通过. 解决方法为:用~“”把相关的css代码包裹起来,例如: _top:~"expression(docume ...
- nginx 的源码安装
安装nginx之前要做的准备工作有:安装如下库 (1)gzip模块需要 zlib 库 (2)rewrite模块需要 pcre 库 (3)ssl 功能需要openssl库 还有一种简单的方法就是 yum ...
- poj1703 并查集
输入是2个不在一起的人,可以用一个数组来保存和他矛盾的人.这样find的时候就find(hash[]);就可以: #include<stdio.h> #include<string. ...