首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在.htaccess中创建异常

如何在.htaccess中创建异常
EN

Stack Overflow用户
提问于 2017-04-15 08:24:50
回答 1查看 840关注 0票数 1

我想使用友好的urls:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
RewriteRule ^([A-Za-z0-9_-]+)/$ pages/$1.php [QSA,L]

但同时,我希望/forum/folder被排除在.htaccess文件中的规则之外。

我怎么能这么做?

EN

回答 1

Stack Overflow用户

发布于 2017-04-15 09:01:57

RewriteRule ^(A-Za-Z0-9-+)/$ pages/$1.php QSA,L ..。我希望/forum/folder被排除在外

你的RewriteRule模式(即。^([A-Za-z0-9_-]+)/$)已经排除了URL-path /forum/folder,因为模式不允许在URL-path中间使用斜杠(目录分隔符);只有在结束时。

所以,如果/forum/folder还在被路由,那么其他的东西也在这样做。如果这个子目录中有一个额外的.htaccess (假设它是一个物理目录)使用mod_rewrite,那么您可能会遇到冲突。

否则,有几种方法可以例外:

#1 -排除所有文件和文件夹:,如果您特别希望不重写所有文件和文件夹(假设/forum/folder是物理目录),那么您可以专门检查这一点,并且只有当URL路径没有映射到文件或目录时才能处理RewriteRule。例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w-]+)/$ pages/$1.php [L]

这里不需要QSA标志,因为请求中的查询字符串默认是追加的。只有在替换中指定查询字符串,并且需要将其与请求中的查询字符串合并时,才需要此标志。正如Deadooshka在注释中提到的,\w[A-Za-z0-9_]的一个简短的手动字符,因此这稍微简化了正则表达式。

#2 -排除规则:在文件开始时使用与要排除的路径匹配的规则,并简单地停止处理。例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
RewriteRule ^forum/folder - [L]

如果请求的URL以/forum/folder开头,那么就在这里停止,不再处理进一步的规则。

#3 -否定条件:在规则本身中包含一个否定的条件(RewriteCond指令)。例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
RewriteCond %{REQUEST_URI} !^/forum/folder
RewriteRule ^([\w-]+)/$ pages/$1.php [L]

只有当请求的RewriteRule不以/forum/folder开头时,这才会处理/forum/folder!前缀在CondPattern上否定正则表达式。

#4 -模式中的负查找:如果您只有一个规则和一个要从该规则中排除的URL,那么可以在RewriteRule模式(regex)中使用一个负前瞻性。例如,若要排除上述指令中的URL /forum,请执行以下操作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
RewriteRule ^((?!forum)[\w-]+)/$ pages/$1.php [L]

(?!forum)是负前瞻。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43428416

复制
相关文章
如何创建.htaccess 文件
关于.htaccess 文件,一般用于虚拟主机中,使用 VPS 建站的可以忽略了。对于使用虚拟主机建站的朋友来说.htaccess 文件可以用作伪静态化设置和 404 页面设置,不过刚接触虚拟主机的朋友可能还不了解,那么下面就来说如何创建.htaccess 文件。
魏艾斯博客www.vpsss.net
2018/05/07
6.3K10
如何创建.htaccess 文件
如何创建.htaccess 文件
关于.htaccess 文件,一般用于虚拟主机中,使用 VPS 建站的可以忽略了。对于使用虚拟主机建站的朋友来说.htaccess 文件可以用作伪静态化设置和 404 页面设置,不过刚接触虚拟主机的朋友可能还不了解,那么下面就来说如何创建.htaccess 文件。 什么是.htaccess 文件? 是虚拟主机根目录中存在的一个配置文件,它负责相关目录下的网页配置。通过 htaccess 文件,可以帮我们实现:网页 301 重定向、自定义 404 错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、
魏艾斯博客www.vpsss.net
2018/06/01
3.1K0
如何在js中创建对象
七夕临近了,没有对象的来创建一个吧 使用对象字面量: const o = { name: "zehan", greeting() { return `Hi, 我是${this.name}`; } }; o.greeting(); // "Hi, zehan" 使用构造函数: function Person(name) { this.name = name; } Person.prototype.greeting = function () { return `Hi, 我是
ZEHAN
2020/09/23
7.6K0
如何在Mac中创建MiniKube
Minikube是一个工具,可以在本地轻松运行Kubernetes。 Minikube在笔记本电脑的VM中运行单节点Kubernetes集群,供希望尝试Kubernetes或日常开发的用户使用。
方志朋
2022/05/08
2.4K0
如何在Mac中创建MiniKube
如何在Dynamo中创建UI
本文介绍了如何在Dynamo中创建UI,通过使用WPF技术实现了窗口的创建和交互。首先介绍了IronPython和Dynamo的基础知识,然后讲解了实现原理和准备工作。最后通过具体的操作步骤和代码示例讲解了如何在Dynamo中创建UI。
企鹅号小编
2018/01/05
2.1K0
如何在Dynamo中创建UI
如何在 WordPress 中创建联系表格?
假设我们有一个 WordPress 网站,并且我们想要添加一个功能,让他们可以联系他们所拥有的查询。我们可以通过使用网站上的 WordPress 插件添加联系表格来做到这一点。因此,这将为你的访问者提供一种与你联系的方式,当他们需要帮助或有什么要分享的时候。
海拥
2022/12/19
2.9K0
如何在 WordPress 中创建联系表格?
Htaccess文件是什么以及Windows下自由创建.htaccess文件的N种方法
概述来说,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。
Java架构师必看
2021/03/22
1.6K0
如何在 WordPress 中创建登录页面
登陆页面: 登陆页面是为特定受众制定的具有特定目标的目标页面,可以描述为“一页一目的”。登陆页面必须有一个“号召性用语”,并牢记特定目标。成功的着陆页是具有更高转化率、更高参与度和更高质量潜在客户的页面。
海拥
2022/10/04
2.9K0
如何在 WordPress 中创建登录页面
如何在git中创建新分支
介绍 Git 是一个开源版本控制系统,用于在软件开发过程中跟踪更改。它的相互独立的分支模型使其脱颖而出。分支可以基于以前版本的软件来保持当前进度的完整性,同时处理错误修复或新功能。 在本地创建 Git 存储库 要创建新的 Git 存储库,请在终端中输入以下命令: mkdir rumenz cd rumenz git init 这将在 rumenz 目录中创建并初始化一个新的 Git 存储库。创建一个新的降价文件并添加一行文本: echo This is a line of text > rumenz.md
入门笔记
2022/06/02
2.9K0
如何在 SwiftUI 中创建条形图
条形图以矩形条的形式呈现数据的类别,其宽度和高度与它们表示的值成比例。本文将展示如何创建一个垂直条形图,其中矩形的高度将代表每个类别的值。
Swift社区
2022/12/12
5.2K0
如何在 SwiftUI 中创建条形图
如何在R中创建日历热图
首先,我们运行Paul Bleicher创建的calendarHeat函数以显示日历热图。 其次,我们创建一些随机的时间序列数据。 最后,我们在两个调色板中绘制时间序列。
用户1359560
2020/04/01
4.5K0
如何在R中创建日历热图
如何在 Django 中创建抽象模型类?
Django 中的抽象模型类是一个模型,它用作其他模型继承的模板,而不是一个旨在创建或保存到数据库的模型。在应用程序中,可以使用抽象模型定义多个模型共享的相似字段和行为。使用 Django,您可以定义一个派生自 Django.db.models 的模型类,以建立一个抽象模型类。
很酷的站长
2023/08/11
2350
如何在 Django 中创建抽象模型类?
如何在VMware中创建虚拟机
今天给大家分享如何在VMware中创建虚拟机,具体的教程如下。在这里小编提前下载了Ubuntu14.04桌面系统,为后面在虚拟机中安装Ubuntu14.04桌面系统做准备。
Python进阶者
2018/08/03
1.4K0
如何在VMware中创建虚拟机
如何在java中创建不可变类?
今天我们将学习如何在java中创建不变的类。不可变对象是在初始化之后状态不变的实例。例如,String是一个不可变类,一旦实例化,它的值不会改变。
三产
2021/01/12
1.9K0
如何在linux中创建虚拟环境
安装虚拟环境的命令 : sudo pip install virtualenv sudo pip install virtualenvwrapper 安装完虚拟环境后,如果提示找不到mkvirtualenv命令,须配置环境变量: # 1、创建目录用来存放虚拟环境 mkdir $HOME/.virtualenvs # 2、打开~/.bashrc文件,并添加如下: export WORKON_HOME=$HOME/.virtualenvs source /usr/local/bin/virtualenvwr
汪凡
2019/03/01
4.4K0
如何在linux中创建虚拟环境
如何在 Python 中创建元组字典
本演练是关于在 Python 中创建元组字典的全部内容。此数据结构存储键值对。通过组合字典和元组,可以创建元组字典。好处是以结构化格式组织且可访问的数据。可以轻松表示每个键的多个值,例如学生成绩或联系信息。让我们看看它如何有效地存储和检索复杂数据。
很酷的站长
2023/08/11
2420
如何在 Python 中创建元组字典
htaccess设置
Options +FollowSymLinks -Indexes RewriteEngine On RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] <I
OwenZhang
2021/12/08
7690
如何在Linux中创建文件?多个文件创建操作命令。
如果文件file1.txt不存在,则上面的命令将创建该文件,否则,它将更改其时间戳。
用户5005176
2021/08/10
39.2K0
点击加载更多

相似问题

如何在htaccess中添加异常

12

htaccess -为子域创建异常

11

如何在RewriteCond的htaccess中添加异常?

12

.htaccess中的异常

14

.htaccess中的异常

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文