.htaccess文件url重写小记

.htaccess文件url重写 当上一条规则匹配 并转换后 符合下一条规则的 继续下一条的匹配转换

RewriteRule ^shangpin-([0-9a-zA-Z]+)/category-([0-9]+)-([0-9]+)-(.+)\.html$  shangpin-$4&id=$2&page=$3
RewriteRule ^shangpin-([a-zA-Z_]+)-(.*) category\.php\?sort=$1&order=$2

在网址 shangpin-cat14/category-14-2-shop_price-ASC.html 的时候

第一条转换后为 shangpin-shop_price-ASC&id=14&page=2 符合下一条规则

执行下一条转换规则后为 category.php?sort=shop_price&order=ASC&id=14&page=2

所以最终访问的是:category.php?sort=shop_price&order=ASC&id=14&page=2

试用正则工具方便调试

时间: 2024-10-14 00:31:34

.htaccess文件url重写小记的相关文章

.htaccess伪静态(URL重写)绑定域名到子目录实现子站点

Apache主机一般支持.htaccess伪静态,即可以实现绑定域名到子目录.一个空间多个站点. 应用举例:绑定htaccess.800m.net到htaccess目录 根目录下.htaccess内容 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / # 绑定htaccess.800m.net到子目录htaccess RewriteCond %{HTTP_HOST} ^htaccess\.800m\.net$ [NC] Rewrit

虚拟主机.htaccess伪静态(URL重写)建立多站点

Apache主机一般支持.htaccess伪静态,即可以实现绑定域名到子目录.一个空间多个站点.应用举例:绑定www.qijingling.com到htaccess目录根目录下.htaccess内容 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / # 绑定www.qijingling.com到子目录htaccess RewriteCond %{HTTP_HOST} ^www.qijingling.com$ [NC] Rewrite

用.htaccess文件实现URL重写

注:第一部分来自 http://www.cnblogs.com/wangkongming/archive/2012/11/13/2768251.html     这位博主的个人网站简洁   还有诗歌  我我我 .. 喜欢喜欢喜欢 第二部分  是自己实践中写的 [一] 你是否曾经对一些网站的网址看起来非常清爽,没有任何.php或.html后缀感到奇怪?他们就是这样做到的. 1.安装 mod_rewrite 模块     因为 Apache 服务器默认是没有打开 mod_rewrite 模块的,所以

ThinkPHP 利用.htaccess文件的 Rewrite 规则隐藏URL中的 index.php

去掉 URL 中的 index.php ThinkPHP 作为 PHP 框架,是单一入口的,那么其原始的 URL 便不是那么友好.但 ThinkPHP 提供了各种机制来定制需要的 URL 格式,配合 Apache .htaccess 文件,更是可以定制出人性化的更利于 SEO 的 URL 地址来. .htaccess文件是 Apache 服务器中的一个配置文件,它负责相关目录下的网页配置.我们可以利用 .htaccess 文件的 Rewrite 规则来隐藏掉 ThinkPHP URL 中的 in

设置ThinkPHP(3.2.1)默认入口文件,及URL重写模式

前提一:在PHP+Apache的配置环境下 一.设置ThinkPHP项目默认入口文件: 找到Apache安装目录Apache24\conf\下配置文件:httpd.conf文件.打开后找到DirectoryIndex 将默认的index.html文件改为index.php文件(任意自己想设置的入口文件) 之后重启Apache后,设置生效. 注意:在移动项目到其他电脑或者服务器上时,因为默认入口文件配置在Apache中,不会随着项目被移动到其它电脑上,因此注意其他电脑和开发电脑要保持一致,否则不能

在.htaccess文件中写RewriteRule无效的问题的解决

近来在Apache Rewrite 拟静态配置时,遇到个问题.写的如下: RewriteEngine onRewriteRule ^/t_(.*)/$ /test.php?id=$1 保存在httpd.conf文件中时,发现可以起作用. 而写在.htaccess文件中,死活不起作用.经过研究发现,里面随便填写字符,服务器报500错误,而且进行定向也没问题,所以不是访问不到的问题,初步猜测应该是语法的问题.后来在百度“RewriteRule  .htaccess”时 找到一篇文章,  文章标题:<

URL重写:RewriteCond指令与RewriteRule 指令格式

Rewirte基本的功能就是实现URL的跳转和隐藏真实地址,基于Perl语言的正則表達式规范.平时帮助我们实现拟静态,拟文件夹,域名跳转,防止盗链等.本文将针对mod_rewrite和URL匹配的技术细节,以及RewriteCond与RewriteRule 指令格式进行探讨. Rewirte模块内部处理 Rewirte模块的内部处理极为复杂,可是为了使一般用户避免犯低级错误.也让管理员能充分利用其功能.在此仍然做一下说明. Rewirte模块API阶段 首先,你必须了解Apache是分若干阶段来

Apache伪静态(Rewrite).htaccess文件详解

Htaccess(超文本访问)是一个简单的配置文件,它允许设计师,开发者和程序员通过它来改变Apache Web服务器的配置.这些功能包括用户重定向.URL重写(url rewrite,国内很多称为伪静态).目录密码保护.现在我们开始-- 1 建立并上传一个.htaccess文件建立一个.htaccess文件很简单,我们使用一个类似windows的记事本或者notpad++都可以,然后把"自动换行"功能关闭,然后写入一些字后保存文件.比如,我们可以起名为:htaccess.txt上传到

在linux 服务器上用.htaccess文件实现二级域名访问子目录

实现子域名绑定网站子目录的方法有很多,比如可以用js跳转,可以用php实现,可以301跳转等,但最常用的应该是RewriteEngine方式了. 新建一个笔记本命名为.htaccess(在window操作系统之中无法这样直接命名),那么可以先随意命名上传到服务器之后再改名字为.hraccess. 在 .htaccess文件内容如下:(以yqltb.top域名为例) #开启url重写模式 RewriteEngine on #网站url伪静态匹配 DirectoryIndex index.php i