从 htaccess 重写规则中排除多个路径

2023-11-29

我创建了一个新函数,希望能够实现面包屑和更好的 URL 结构。

在此之前,我有以下规则:

RewriteRule ^pages/([a-z0-9,&-]+)/?$ ?action=viewArticleName&page_identifier=$1 [L,NC,QSA,B]

这意味着;

www.example.com/pages/contact 

从数据库返回一篇文章。现在我想改变这个,所以我的网址看起来像

www.example.com/categoryname/pagename

所以我的工作重写规则是:

RewriteRule ^([^/]+)/([^/]+)$ /?action=viewCategoryName&categoryName=$1&page_identifier=$2 [L]

问题是此 RewriteRule 导致 /images 中包含的任何图像加载文章包含的模板。

我可以想到三种可能的解决方案,但不是实际的代码:

1)我可以创建一个类别名称数组吗?然后我可以以某种方式使 RewriteRule 仅应用于这些名称。

2)创建一个类来包含一些全局设置。其中有一些定义或设置图像路径的 php。我能想到的就是;

define( "IMAGE_PATH", "//example.com/images" ); 

3) 在 Htaccess 文件中添加一些内容,以从规则中排除某些路径。

我知道 MVC 或类似的会取得更好的结果。这是我的学习,如果我在这里给自己挖坑了,请告诉我!

非常感谢, 亚当


You can 跳过所有现有文件和目录从这样的重写中可以防止所有图像受到这个新规则的影响:

# skip all existing files
RewriteCond %{REQUEST_FILENAME} !-f
# skip all existing directories
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/?$ /?action=viewCategoryName&categoryName=$1&page_identifier=$2 [L,QSA,B]

注意,在标志中添加了“B”,这会转义非字母数字字符,例如“&”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 htaccess 重写规则中排除多个路径 的相关文章

  • 是否可以将路由参数传递给 Laravel 中的控制器构造函数?

    是否可以将路由参数 或路由段 注入到控制器构造函数中 您找到一些代码来澄清我的问题 class TestController protected param public function construct paramFromRoute
  • Xdebug V3 不会停止 VSCode 中的断点

    我正在尝试使用 VSCode 在 XAMPP 上进行调试 但没有成功 我知道有很多关于这个的问题 我已经尽了一切努力 但仍然行不通 我的 xdebug 扩展确实有一件奇怪的事情 我目前使用 PHP v7 4 12 和 Xdebug 版本 3
  • 如何从网站网址中隐藏 .html 扩展名

    我知道这个问题以前曾被问过 但有人知道隐藏 html 扩展名的好方法吗 我已经尝试了许多代码和许多答案https stackoverflow com https stackoverflow com 但我没有看到结果 那是我再问你一次 我有一
  • Perl 非贪婪

    我遇到非贪婪正则表达式 regex 的问题 我已经看到有关于非贪婪正则表达式的问题 但它们没有回答我的问题 Problem 我正在尝试匹配 lol 锚点的 href Note 我知道这可以通过 Perl HTML 解析模块来完成 我的问题是
  • 使用 PHP glob 列出 FTP 服务器上的文件不起作用

    我使用此代码来访问目录 location files pictures glob location png 我想使用 FTP 访问远程路径 location opendir ftp user password host name files
  • 如何将表中不存在但原始SQL中存在的实体字段设置为别名?

    假设我们有一个这样的查询 SELECT CUSTOM EXPRESSION as virtualfield FROM users 用户的实体本身具有 虚拟字段 但映射注释没有 因为表没有该字段 假设它作为原始 SQL 执行 我们如何使用上面
  • 在哪里可以获得 PHP 5.3+ 的 runkit DLL 扩展?

    这是一个简单的问题 我在哪里可以获得 PHP 5 3 版本的 runkit 扩展 它的手册 http php net manual en book runkit php http php net manual en book runkit
  • docker 中的 php Curl 冲突 CURLOPT_FILE 和 CURLOPT_RETURNTRANSFER

    当我使用curl时CURLOPT FILE and CURLOPT RETURNTRANSFER选项 文件为空 没有任何curl错误 fp fopen saveTo w ch curl init fileUrl curl setopt ch
  • Facebook PHP-SDK 页面刷新后似乎丢失了 userID

    我似乎登录工作正常 我可以登录 接受应用程序 第一次 然后显示用户信息 例如姓名 图片 等 然而 当我刷新页面时 userid 又回到 0 我必须再次登录 我不确定问题是什么 我必须在每次页面加载时重新启动它还是什么 我不知道 我会发布一些
  • Mac 上的 Apache 虚拟主机的通配符域

    我目前正在运行多个域以进行本地开发 http wordpress dev http phpmyadmin dev http projectx dev http projecty dev 这些项目大多数位于用户的 Sites 目录中 但有些项
  • 在 PHP 字符串中格式化 MySQL 代码

    是否有任何程序 IDE 可以在 PHP 字符串中格式化 MySQL 代码 例如 我使用 PHPStorm IDE 但它无法做到这一点 它对 PHP 和 MYSQL 执行此操作 但不适用于 php 字符串内的 MYSQL 我已准备好使用新的
  • 从 Laravel 4 输入生成新数组

    我使用 Input all 从动态生成的表单中获取一些输入 我使用 jQuery 来允许用户添加字段 字段名称为 first names last names 和 emails input 变量现在看起来像这样 array size 4 t
  • PHP 接口有属性吗?

    PHP 中的接口有属性 还是只有方法 您可以在 DocBlock 中为接口声明属性 然后 IDE 将提示接口的这些属性 PhpStorm 会这样做 但这不会强制在实现类中实际实现这些字段 例如 property string passwor
  • 如何为俚语和表情符号构建正则表达式 (regex)

    我需要构建一个正则表达式来匹配俚语 即 lol lmao imo 等 和表情符号 即 P 等 我按照以下示例进行操作http www coderanch com t 497238 java java Regular Expression D
  • php - 解析html页面

    div divbox div p para1 p p para2 p p para3 p table class table tr td td tr table p para4 p p para5 p 有人可以告诉我如何解析这个 html
  • 雄辩的第一个 where 子句

    我想知道 Laravel 如何实现雄辩的语法 以便可以静态调用第一个 where 子句User where User where id 23 gt where email email gt first 他们有吗public static f
  • Jquery一键提交多个同名表单

    我有动态创建的循环表单 我需要一键提交所有表单 我正在遵循下面的代码 你能建议我怎么做吗 谢谢
  • 使用会话 php 创建 cookie?

    我使用会话来登录我网站中的用户 问题是 我想让用户remember密码 因此关闭 打开浏览器后他们不需要再次登录 我需要使用 cookie 和 session 来实现它吗 my code user POST user pass POST p
  • 如何在 PHP 5.6 中通过 php.ini 设置“verify_peer_name=false”SSL 上下文选项

    案例 我想打开 SSL 连接localhost而 SSL 证书是 FQDN 的问题 问题 没有进行特殊处理就行 下面的程序失败并显示以下消息 PHP Warning stream socket enable crypto Peer cert
  • SSL 适用于浏览器、wget 和curl,但不适用于 git

    我有一个网站 用于托管 redmine 和几个 git 存储库 这非常适合 http 但我无法使用 https 进行克隆 即 git clone http mysite com git test git 工作正常 但是 git clone

随机推荐

  • 使用 Sonata Admin 处理 Doctrine json_array 字段

    是否有任何 内置 方式来管理教义json array使用 Sonata Admin 的字段 我在 Symfony Sonata 文档 或代码 中找不到任何有用的文档 或相关代码 但我希望我错过了一些东西 理想情况下 我希望看到序列化的键 值
  • 当有大量输入时,Chrome 速度很慢

    在我们的 MVC 5 项目中有一个页面 用户可以在其中检查多个资产 每个资产都由复选框和名称表示 当有大量资源 大约 800 1000 个 时 Chrome 会变得非常慢 有时甚至会显示 页面不负责任 的消息 它看起来像这样 页面部分呈现并
  • 更新时触发更新列

    我写了这个函数和这个触发器 CREATE OR REPLACE FUNCTION test4 RETURNS TRIGGER AS BODY BEGIN UPDATE cf SET vol area alt RETURN null END
  • SQL 中的 IF ELSE 语句

    SELECT S Id S Name S Version S SoftNo FROM SOFTWARE S WITH NOLOCK WHERE IF S Version 0 THEN S Version gt 0 ELSE S Versio
  • Flutter中Completer和Isolates的解释和区别

    我需要在我的应用程序上返回一个 Future 因为我认为我的函数需要太多时间才能完成 所以我有两个可能的答案 使用完成者 or an Isolate 是什么让我选择其中之一 我可以将 Completer 放在我想要的任何地方并相信它会正常工
  • Android 智能手机应用程序支持 Android 平板电脑

    我正在 Android 中创建一个应用程序 最初我只为智能手机制作它 但现在我希望同样的应用程序能够支持 Android 平板电脑 问题在于缩放 它没有缩放到平板电脑屏幕的大小 我使用了 LinearLayout 高度和宽度作为 fill
  • 如何使用 css 更改图像中的蓝色背景选择颜色

    任何人都可以帮助我如何从选择的图像中删除蓝色 你可以从这里看到截图 You can use the user select property though pressing CTRL A will still cause the blue
  • 事件处理程序未添加到新邮件项目中

    我正在尝试创建一个简单的 Outlook 2010 加载项来响应新的附件事件 下面的代码仅在我取消注释 MessageBox Show 行时才有效 但删除它后 似乎没有添加事件处理程序 我在程序流程中缺少什么 这意味着模式消息框会影响事件处
  • 为什么更改 CSS 类名会破坏样式?

    这对我来说真是一件令人头疼的事 我将 Zurb Foundation 与 SASS 以及 Django 开发服务器结合使用 问题是这样的 我有一个带有一些选择器的 SCSS 文件 它们可以按需要工作 但是 如果我改变nameSCSS 和 H
  • 避免退出后返回

    我发现这些问题 其中操作员有与我相同的问题 1 2 但是 我无法解决我的问题 用户按下注销按钮 页面将重定向到index php 但浏览器中的后退按钮会将页面重定向到之前的内容 受登录保护 刷新后 一切正常 后退按钮停止工作 gt 用户被重
  • Websphere 8.5.5 上的 Spring Data JPA + Hibernate

    从 Tomcat 迁移到 WebSphere 时 我遇到了 Spring 4 Hibernate 项目无法正确加载的问题 我已经将应用程序设置为 PARENT LAST 类加载器 并将我的 Hibernate 版本恢复到 4 2 16 因为
  • 重复范围可替换为“*”是什么意思?

    我在 IntelliJ IDEA 中执行了代码分析器 它显示了弱警告 重复范围可由 替换 它在我使用正则表达式模式的下面代码行显示警告 String pattern prefix length suffix 我不确定我的代码在替换后是否可以
  • ORDER BY datetime 使查询非常慢

    我正在尝试从多个表中提取数据 当我使用 ORDER BY 日期时间字段时 它会在至少 10 秒后返回结果 但如果我在没有 ORDER BY 的情况下执行相同的查询 那么它会在 2 秒内返回结果 这是我当前的查询 SELECT ph call
  • 将字节数组转换为 Stream 时 ReadTimeout 引发异常

    我收到这个错误 ReadTimeout System IO Stream ms ReadTimeout threw an exception of type System InvalidOperationException 我的代码是 by
  • R Shiny - 将鼠标悬停在图标上时弹出窗口

    我想简单地在简单的文本行后面的图标上添加一个悬停窗口 我找到了shinyBS包 它似乎使这成为可能 但它链接到shiny输出 在闪亮的应用程序的 ui 中添加类似下面的代码可以使按钮正常工作 但在本例中它们链接到单选按钮 CVI lt c
  • Swift - 如何在迭代结构对象时改变它

    我仍然不确定结构复制或引用的规则 我想在从数组迭代结构对象时改变它 例如在这种情况下我想改变背景颜色 但编译器对我大喊大叫 struct Options var backgroundColor UIColor blackColor var
  • 如何将 Rails 助手导入到功能测试中

    你好 我最近继承了一个项目 其中前开发人员不熟悉 Rails 并决定将很多重要的逻辑放入视图助手中 class ApplicationController lt ActionController Base protect from forg
  • 使用单射函数的反值

    我试图证明这个引理 lemma assumes x inv f y and inj f and x undefined shows y range f using assms try 但 Nitpick 告诉我这个说法并不正确 Trying
  • 使用 Jasper Reports API 6.13.0 和 Adopt OpenJDK 11 编译 Jasper Reports 时出错

    我们有一个实用程序 CompileJasperReports jar 用于编译文件夹中找到的所有报告 当将 JasperReports 6 7 API 与 Java 8 结合使用时 该实用程序运行良好 通话内容是 C Program Fil
  • 从 htaccess 重写规则中排除多个路径

    我创建了一个新函数 希望能够实现面包屑和更好的 URL 结构 在此之前 我有以下规则 RewriteRule pages a z0 9 action viewArticleName page identifier 1 L NC QSA B