apache mod_rewrite 应用举例

手把手教你用DLP4500投影仪玩转结构光3D扫描(附固件烧录与序列设置避坑指南) 本文详细解析了如何使用DLP4500投影仪搭建结构光3D扫描系统,涵盖硬件组装、固件烧录、图案生成与优化等全流程。重点解决了固件烧录失败、图像格式错误等常见问题,并提供了实用的避坑指南和进阶技巧,帮助读者快速掌握DLP4500在3D扫描中的应用。 阅读详情

来自:http://skyfen.iteye.com/blog/578109

1.给子域名加www标记 

RewriteCond %{HTTP_HOST} ^([a-z.]+)?example\.com$ [NC] 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule .? http://www.%1example.com%{REQUEST_URI} [R=301,L] 
这个规则抓取二级域名的%1变量,如果不是以www开始,那么就加www,以前的域名以及{REQUEST_URI}会跟在其后。

2.去掉域名中的www标记 
RewriteCond %{HTTP_HOST} !^example\.com$ [NC] 
RewriteRule .? http://example.com%{REQUEST_URI} [R=301,L]
 

3.去掉www标记,但是保存子域名 
RewriteCond %{HTTP_HOST} ^www\.(([a-z0-9_]+\.)?example\.com)$ [NC] 
RewriteRule .? http://%1%{REQUEST_URI} [R=301,L]
 
这里,当匹配到1%变量以后,子域名才会在%2(内部原子)中抓取到,而我们需要的正是这个%1变量。 

4.防止图片盗链 
一些站长不择手段的将你的图片盗链在他们网站上,耗费你的带宽。你可以加一下 代码 阻止这种行为。 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com/ [NC] 
RewriteRule \.(gif|jpg|png)$ - [F] 
如果{HTTP_REFERER}值不为空,或者不是来自你自己的域名,这个规则用[F]FLAG阻止以gif|jpg|png 结尾的URL 
如果对这种盗链你是坚决鄙视的,你还可以改变图片,让访问盗链网站的用户知道该网站正在盗用你的图片。 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com/.*$ [NC] 
RewriteRule \.(gif|jpg|png)$ 你的图片地址 [R=301,L] 
除了阻止图片盗链 链接 ,以上规则将其盗链的图片全部替换成了你 设置 的图片。 
你还可以阻止特定域名盗链你的图片: 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?leech_site\.com/ [NC] 
RewriteRule \.(gif|jpg|png)$ - [F,L]
 
这个规则将阻止域名黑名单上所有的图片链接请求。 
当然以上这些规则都是以{HTTP_REFERER}获取域名为基础的,如果你想改用成IP地址,用{REMOTE_ADDR}就可以了。

5.如果文件不存在重定向到404页面 
如果你的主机没有提供404页面重定向服务,那么我们自己创建。 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule .? /404.php [L] 
这里-f匹配的是存在的文件名,-d匹配的存在的路径名。这段代码在进行404重定向之前,会判断你的文件名以及路径名是否存在。你还可以在404页面上加一个?url=$1参数: 
RewriteRule ^/?(.*)$ /404.php?url=$1 [L]  
这样,你的404页面就可以做一些其他的事情,例如默认信心,发一个邮件提醒,加一个 搜索 ,等等。

6.重命名目录  
如果你想在网站上重命名目录,试试这个: 
RewriteRule ^/?old_directory/([a-z/.]+)$ new_directory/$1 [R=301,L]  
在规则里我添加了一个“.”(注意不是代表得所有字符,前面有转义符)来匹配文件的后缀名。 

7.将.html后缀名转换成.php  
前提是.html文件能继续访问的情况下,更新你的网站链接。 
RewriteRule ^/?([a-z/]+)\.html$ $1.php [L]  
这不是一个网页重定向,所以访问者是不可见的。让他作为一个永久重定向(可见的),将FLAG修改[R=301,L]。 

8.创建无文件后缀名链接  
如果你想使你的 PHP 网站的链接更加简洁易记-或者隐藏文件的后缀名,试试这个: 
RewriteRule ^/?([a-z]+)$ $1.php [L]  
如果网站混有PHP以及HTML文件,你可以用RewriteCond先判断该后缀的文件是否存在,然后进行替换: 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^/?([a-zA-Z0-9]+)$ $1.php [L] 
RewriteCond %{REQUEST_FILENAME}.html -f 
RewriteRule ^/?([a-zA-Z0-9]+)$ $1.html [L]
 
如果文件是以.php为后缀,这条规则将被执行。

9.检查查询变量里的特定参数  
如果在URL里面有一个特殊的参数,你可用RewriteCond鉴别其是否存在: 
RewriteCond %{QUERY_STRING} !uniquekey= 
RewriteRule ^/?script_that_requires_uniquekey\.php$ other_script.php [QSA,L]
 
以上规则将检查{QUERY_STRING}里面的uniquekey参数是否存在,如果{REQUEST_URI}值为script_that_requires_uniquekey,将会定向到新的URL。 

10.删除查询变量  
Apache的mod_rewrite模块会自动辨识查询变量,除非你做了以下改动: 
a).分配一个新的查询参数(你可以用[QSA,L]FLAG保存最初的查询变量) 
b).在文件名后面加一个“?”(比如index.php?)。符号“?”不会在浏览器的地址栏里显示。

11.用新的格式展示当前URI 
如果这就是我们当前正在运行的URLs:/index.php?id=nnnn。我们非常希望将其更改成/nnnn并且让搜索引擎以新格式展现。首先,我们为了让搜索引擎更新成新的,得将旧的URLs重定向到新的格式,但是,我们还得保证以前的index.php照样能够运行。是不是被我搞迷糊了? 
实现以上 功能 ,诀窍就在于在查询变量中加了一个访问者看不到的标记符“marker”。我们只将查询变量中没有出现“marker”标记的链接进行重定向,然后将原有的链接替换成新的格式,并且通过[QSA]FLAG在已有的参数加一个“marker”标记。以下为实现的方式: 
RewriteCond %{QUERY_STRING} !marker 
RewriteCond %{QUERY_STRING} id=([-a-zA-Z0-9_+]+) 
RewriteRule ^/?index\.php$ %1? [R=301,L] 
RewriteRule ^/?([-a-zA-Z0-9_+]+)$ index.php?marker &id=$1 [L]

这里,原先的URL: http://www.example.com/index.php?id=nnnn ,不包含marker,所以被第一个规则永久重定向到 http://www.example.com/nnnn ,第二个规则将 http://www.example.com/nnnn 反定向到 http://www.example.com/index.php?marker &id=nnnn,并且加了marker以及id=nnnn两个变量,最后mod_rewrite就开始进行处理过程。
第二次匹配,marker被匹配,所以忽略第一条规则,这里有一个“.”字符会出现在 http://www.example.com/index.php?marker  &id=nnnn中,所以第二条规则也会被忽略,这样我们就完成了。
注意,这个 解决 方案要求Apache的一些扩展功能,所以如果你的网站放于在共享主机中会遇到很多障碍。

12.保证安全服务启用  
Apache可以用两种方法辨别你是否开启了安全服务,分别引用{HTTPS}和{SERVER_PORT}变量: 
RewriteCond %{REQUEST_URI} ^secure_page\.php$ 
RewriteCond %{HTTPS} !on 
RewriteRule ^/?(secure_page\.php)$ https://www.example.com/$1 [R=301,L]
 
以上规则测试{REQUEST_URI}值是否等于我们的安全页代码,并且{HTTPS}不等于on。如果这两个条件同时满足,请求将被重定向到安全服务URI.另外你可用{SERVER_PORT}做同样的测试,443是常用的安全服务端口 
RewriteCond %{REQUEST_URI} ^secure_page\.php$ 
RewriteCond %{SERVER_PORT} !^443$ 
RewriteRule ^/?(secure_page\.php)$ https://www.example.com/$1 [R=301,L]

13.在特定的页面上强制执行安全服务 
遇到同一个服务器根目录下分别有一个安全服务域名和一个非安全服务域名,所以你就需要用RewriteCond 判断安全服务端口是否占用,并且只将以下列表的页面要求为安全服务: 
RewriteCond %{SERVER_PORT} !^443$ 
RewriteRule ^/?(page1|page2|page3|page4|page5)$ https://www.example.com/%1[R=301,L] 
以下是怎样将没有设置成安全服务的页面返回到80端口: 
RewriteCond %{ SERVER_PORT } ^443$ 
RewriteRule !^/?(page6|page7|page8|page9)$http://www.example.com%{REQUEST_URI} [R=301,L]
HFSS实战:手把手教你设计一款小型化圆极化微带天线(附仿真文件) 本文详细介绍了使用HFSS设计小型化圆极化微带天线的完整流程,包括工程初始化、辐射贴片设计、仿真设置与优化等关键步骤。通过实战案例,帮助工程师掌握圆极化天线设计技巧,解决轴比控制和耦合馈电匹配等核心问题,适用于物联网终端和便携式设备应用。 阅读详情

相关推荐

第 3 天:Actor 是什么?创建你的第一个游戏对象!

本文详细介绍 Actor 在 Unreal Engine 5 中的作用,并通过 C++ 创建你的第一个游戏对象。你将学习 Actor 的生命周期(BeginPlay、Tick)、如何添加组件(Static Mesh),并让 Actor 在游戏世界中运作。同时提供 常见问题解决方案,助你快速上手 UE5 C++ 开发!🎮 跟随本教程,构建属于你的第一个游戏对象!

m0_37643873的博客 2629

13 个mod_rewrite 应用举例

1.给子域名加www标记 RewriteCond %{HTTP_HOST} ^([a-z.]+)?example\.com$ [NC] RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule .? http://www.%1example.com%{REQUEST_URI} [R=301,L] 这个规则抓取二级域名的%1变量,如果不是以www开始,那么就...

小鱼儿叮咚 260

vivado时序分析 实例

vivado时序分析实例建立余量保持余量 建立余量 保持余量

Bunny9__的博客 1万+

Rewrite和RewriteRule规则,http强转https的配置总结

RewriteEngine On RewriteBase / RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://blog.shibo.com/$1 [R=301,L]

stwood007的博客 6052

从无人机到机械臂:深入聊聊LQR和LQG在实际项目里的那些‘坑’与最佳实践

本文深入探讨了LQR和LQG在无人机和机械臂等实际项目中的应用挑战与最佳实践。从系统建模的妥协艺术到调参的系统化方法,再到离散化的细节处理,文章分享了工程实践中的宝贵经验。特别强调了如何应对传感器噪声、未建模动态等现实问题,并提供了实用的调试工具和诊断流程,帮助工程师避免常见陷阱,提升控制系统的稳定性和性能。

weixin_28683391的博客 384

图像配准方法之灰度信息法

这系列文章是5年前的,也是从自己的QQ(632846506)日志中移过来的。https://user.qzone.qq.com/632846506/infocenter。      图像配准的方法主要有三种:基于灰度信息方法;基于空间变换域方法;基于图像特征的方法。 一、灰度信息法。     灰度信息法直接利用两幅图像之间灰度度量的相似性,以图像内部的信息为依据,采用搜索方法寻找相似度最大或

月秀明竹的专栏 1万+

通过地址重写, 解决ingress在使用非标准端口(80, 443)时, 引起的重定向丢失端口问题

最近在搭建私有云k8s集群时, 由于一些安全原因, 没有使用标准端口(80, 443), 发现已部署在pod中的项目出现了重定向丢失端口的问题, 经过排查, 发现本质上不是丢失了端口, 而是默认重定向到了标准端口, http的重定向会默认到80, https会重定向到443端口, 下面我分享一下自己的解决方案方案: 简单来说, 要实现ingress在非标准端口正常工作, 要保证以下几个结果, 这里我们以30052代替80, 30054代替443 ingress-controller 的pod 需要工作在指

李昊轩的博客 3891

SAP_SD模块更改销售订单定价简介

方式优点缺点适用场景MASS简单,无需开发不能触发重新定价逻辑修改特定字段BDC (VA02)可模拟人工操作维护复杂,速度慢少量订单批改稳定、安全需ABAP支持推荐用于批量重新定价VBOF标准重算返利仅适返利类条件返利更新通过本文,我们了解了 SAP 的[SAP_SD模块更改销售订单定价]的基本概念和应用方法。希望这些信息能帮助您在实际工作中更好地使用 SAP 系统,提高工作效率和管理水平。更多SAP文章请点击更多SAP文章更新,大家一起学习进步!!!

我小时候很黑的博客 712

今儿个就写写Apache的https配置

今儿个就写写Apache的https配置 用的宝塔面板,里面有ssl证书,但是有个问题,不带www的域名自动跳转到https上,而带上了www后,没有跳转,经过网上寻找之后发现只需在默认伪静态下添加一下代码: RewriteBase / RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUES...

ffs57的博客 261

全网详细解决Client does not support authentication protocol requested by server;consider upgrading Mysql c

全网详细解决1251 - Client does not support authentication protocol requested by server; consider upgrading Mysql client。

念兮为美 5477

【Docker安装】Ubuntu 24.04.2 LTS系统下安装Docker环境——指定APT源安装方式

【Docker安装】Ubuntu 24.04.2 LTS系统下安装Docker环境——指定APT源安装方式

jks212454的博客 625

使用cloudflare重写端口

cloudflare重写端口

weixin_44573077的博客 1万+

突破限制:巧用Azure OpenAI,畅玩Gemini模型

通过 Azure OpenAI 服务这一巧妙的途径,间接调用 Gemini 模型,打破网络限制的壁垒。本文将详细介绍这一方法,无论你是人工智能领域的新手,还是经验丰富的开发者,都能从中获取实用的技巧,轻松开启 Gemini 模型的探索之旅

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 180

RewriteCond和13个mod_rewrite应用举例Apache伪静态

RewriteCond和13个mod_rewrite应用举例Apache伪静态 1.给子域名加www标记 RewriteCond %{HTTP_HOST} ^([a-z.]+)?example\.com$ [NC] RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule .? http://www.xample.co...

weixin_30677475的博客 118

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

RewriteCond和13个mod_rewrite应用举例Apache伪静态之htaccess编写

1.给子域名加www标记 RewriteCond %{HTTP_HOST} ^([a-z.]+)?example\.com$ [NC] RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule .? http://www.xample.com%{REQUEST_URI} [R=301,L] 这个规则抓取二级域名的%1变量,如果不是以www开始,那

牛儿吃草的博客 1004

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

C#设计模式实战:用单例、策略、工厂方法重构地牢游戏

设计模式是面向对象开发的核心方法论,它解决的是代码复用、扩展与维护的经典难题。单例模式保证全局状态唯一,策略模式封装可互换的算法族,工厂方法模式将对象创建与使用解耦,三者分别对应全局管理、行为扩展和对象创建三大维度。在实际工程中,这些模式能显著提升系统的灵活性,尤其适合需求迭代频繁的游戏项目。以C#控制台地牢游戏为例,将单例模式用于游戏管理器,策略模式实现近战、远程、魔法攻击切换,工厂方法模式生成不同关卡敌人,完整展示了设计模式从理论到落地的全过程,帮助开发者理解开闭原则并避开常见误用陷阱。

weixin_30399155的博客 328

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

如何在 Ubuntu 16.04 上使用 mod_rewrite 重写 Apache 的 URL

在本教程中,我们将激活并学习如何使用 Apache 2 的模块来管理 URL 重写。该模块允许我们以更清晰的方式重写 URL,将人类可读的路径转换为对代码友好的查询字符串,或者基于额外条件重定向 URL。本指南分为两部分。第一部分设置一个示例网站,并涵盖一个简单的重写示例。第二部分包含两个更深入的常用重写规则示例。

rubys007的博客 1651

Apache模块mod_rewrite详解

什么是mod_rewrite?mod_rewrite是一个基于一定规则的实时重写 URL请求的引擎。此模块可以操作 URL的所有部分,在服务器级的 (httpd.conf)和目录级的 (.htaccess)配置都有效。启用 mod_rewrite模块#LoadModule rewrite_module modules/mod_rewrite.so 设置重写目录Options Indexes FollowSymLinksAllowOverride All封装一组指令,使之对某个目录及其子

4184

在CentOS 7上设置Apache的mod_rewrite的方法

Apache 是一个模块化的 Web 服务器,允许您通过启用和禁用模块来定制其功能。这为管理员提供了定制 Apache 功能以满足其 Web 应用程序需求的能力。在本教程中,我们将在 CentOS 7 服务器上安装 Apache,确认模块已启用,并探索一些基本功能。

rubys007的博客 2041

linux下让apache支持mod_rewrite模块

如果你的服务器apache还没有安装,那很简单,在编译apache时将 mod_rewrite模块编译进去就可以如果你的apache已经安装好了,现在只想编译出mod_rewrite.so模块,在apache中进行加载,下面我们就介绍这个方 法。1)首次安装apache,在编译时增加–enable-rewrite选项。如./configure –prefix=/opt/apache –enable-so –enable-mods-shared=all –enable-rewrite –enable-cach

cqinter的专栏 6168
上一篇: 自定义的模块调用magento默认编辑器WYSIWYG
下一篇: android以application/json流的方式提交数据
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值