php rewrite url_PHP实现url重写和.htaccess
.htaccess是一个完整的文件名(只有后缀),它是用于Apache服务器下的配置文件,当.htaccess文件放在某一文件夹下,它仅对该文件夹下的文件和文件夹有效。通过.htaccess文件,可以配置服务器实现很多功能,比如错误定位,密码保护,IP拒绝,URL重写等等。
默认的Apache不支持.htaccess,需要修改Apache的配置文件httpd.conf,才能使得.htaccess有效。
配置方法:
配置方面:
1. 找到apache的安装目录下的conf下的httpd.conf文件,打开文件修改
LoadModule rewrite_module modules/mod_rewrite.so这行代码,他前面有个#号,把#号删掉
2. 找到
Options FollowSymLinks ExecCGI Indexes
AllowOverride None
Order deny,allow
Deny from all
Satisfy all
这个节点,把None改为All.节点可能有多个,修改和PHP路径相关的那个。
3. 重启apache服务
接下来是创建.htaccess文件,并在里面写配置。Windows中新建文件的时候,不允许文件只有后缀,可以采用notepad等工具新建另存为该文件名。
如果要实现URL重写,配置文件中采用正则表达式是编写URL,并使之和常规的php文件映射。常用的写法如下:
RewriteEngine on //on为打开,off为关闭
RewriteRule ([a-zA-Z]{1,})-([0-9]{1,}).html$ b.php?action=$1&id=$2
RewriteRule ([a-zA-Z1-9]{1,})/([a-zA-Z1-9]{1,})$ a.php?controller=$1&action=$2
RewriteRule MyController/[a-zA-Z1-9]$ MyController.php?action=$1
ErrorDocument 404 /404.txt
网上找了一篇文件http://roshanbh.com.np/2008/03/url-rewriting-examples-htaccess.html例举了常用的5种映射,也可以参考。
product.php?id=12 to product-12.html
RewriteEngine on
RewriteRule ^product-([0-9]+)\.html$ product.php?id=$1
Rewriting product.php?id=12 to product/ipod-nano/12.html
RewriteEngine on
RewriteRule ^product/([a-zA-Z0-9_-]+)/([0-9]+)\.html$ product.php?id=$2
Redirecting non www URL to www URL
RewriteEngine On
RewriteCond %{HTTP_HOST} ^optimaxwebsolutions\.com$
RewriteRule (.*) http://www.optimaxwebsolutions.com/$1 [R=301,L]
Rewriting yoursite.com/user.php?username=xyz to yoursite.com/xyz
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ user.php?username=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ user.php?username=$1
Redirecting the domain to a new subfolder of inside public_html.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^test\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.test\.com$
RewriteCond %{REQUEST_URI} !^/new/
RewriteRule (.*) /new/$1
示例:
.htaccess文件内容如下
RewriteEngine on //on为打开,off为关闭
RewriteRule ^([a-zA-Z1-9]{1,})/([a-zA-Z1-9]{1,})$ a.php?controller=$1&action=$2
RewriteRule ^([a-zA-Z1-9]{1,})/([a-zA-Z1-9]{1,})/$ a.php?controller=$1&action=$2
说明:
正则表达式,严格匹配类似Controller/Action或者Controller/Action/,映射到a.php
a.php内容
echo "你的controller:".$_GET['controller']."
";
echo "你的action:".$_GET['action'];
?>
输入http://localhost:8080/Controller/Action/
则被解析到http://localhost:8080/a.php?controller=Controller&action=Action
这2个url是等价的。
注意,在映射url后加上查询字符串不影响正常的映射,比如输入http://localhost:8080/Controller/Action/?value=100,也是可以的。
参考文档:
http://www.htaccess-guide.com/
http://corz.org/serv/tricks/htaccess.php
http://roshanbh.com.np/2008/03/url-rewriting-examples-htaccess.html
php rewrite url_PHP实现url重写和.htaccess相关推荐
- Nginx URL重写(rewrite)配置及信息详解
URL重写有利于网站首选域的确定,对于同一资源页面多条路径的301重定向有助于URL权重的集中 Nginx URL重写(rewrite)介绍 和apache等web服务软件一样,rewrite的组要功 ...
- nginx:Url重写
rewrite语法格式及参数语法: rewrite是实现URL重写的关键指令,根据regex (正则表达式)部分内容, 重定向到replacement,结尾是flag标记. rewrite &l ...
- Nginx教程 :nginx URL 重写
Nginx URL重写(rewrite)介绍 和apache等web服务软件一样,rewrite的组要功能是实现RUL地址的重定向.Nginx的rewrite功能需要PCRE软件的支持,即通过perl ...
- .htaccess技巧: URL重写(Rewrite)与重定向(Redirect)
http://lesca.me/archives/htaccess-rewrite.html/comment-page-1#comment-16045 目录 Table of Contents 一.准 ...
- nginx服务器中url重写rewrite参数和例子
本文转自:http://www.cnblogs.com/cgli/archive/2011/05/16/2047920.html 最近在VPS上尝试配置安装一个网站,VPS安装了LNMP(Linux+ ...
- Url Rewrite 再说Url 重写
前几天看到园子里一篇关于 Url 重写的文章<获取ISAPI_Rewrite重写后的URL> , URL-Rewrite 这项技术早已不是一项新技术了,这个话题也已经被很多人讨论过多次.搜 ...
- IIS安装和使用URL重写工具-URL Rewrite
下载和安装URL Rewrite IIS8默认是没有安装URL重写工具的,必须要自己下载安装. 如果IIS上默认有安装Web平台安装程序,我们可以使用平台自动安装URL Rewrite重写工具,打开I ...
- php重定向 .htaccess,.htaccess重定向和url重写
# 这是注释 # 指定默认首页查找顺序 DirectoryIndex index.htm .index.php #自定义404页面 ErrorDocument 404 /error/404.html ...
- asp.net mvc、asp.net url重写 Url Rewrite
最近在做一个cms手机网站,由于内容不是很多,很快做完了.空闲的时间考虑seo,想把url全部写成静态的.在查资料的时候,发现 UrlRewrite.Net这个组件非常的不错,尝试了下结果达到了理想的 ...
最新文章
- java设计模式之九外观模式(Facade)
- TreaponseHeader
- C++ 中的模板类声明头文件和实现文件分离后,如何能实现正常编译?
- java常见的ide_在三个Java IDE中生成的三种常见方法
- 【jq】c#零基础学习之路(1)Hello World!
- 物联网搜集大量数据协助制定业务策略 成为银行业竞争利器
- gradle文件利用java解析_使用文件读取Gradle Multi项目构建
- 如何解决Please ensure that adb is correctly located at......
- java md5加密源码_javaMD5加密源码
- 【有图有真相】全国软考高级三连冠感悟
- 二进制、八进制、十进制与十六进制
- 三步生活法:土豆(Todo),优势,庆祝
- 快速开发项目的前端框架主要针对后台界面
- 2022-爬虫-Selenium-百度安全验证
- DbVisualizer 9 解决中文乱码问题(win7,win10)
- 深圳教育培训机构启用消费评价二维码
- python爬表情包_教你用Python来爬取表情包网站的所有表情图片
- Java图片压缩大小,图片缩放
- cindy POSA2读书笔记(二)
- react map循环生成的button_【第1945期】彻底搞懂React源码调度原理(Concurrent模式)...