我想使用 .htaccess 从网址中删除问号和 .php 扩展名

2023-12-09

我在 .htaccess 中遇到重定向 URL 问题。我想从 URL 中删除 .php 和问号。

例如:www.example.com/test.php?id=12 to www.example.com/test/12需要这样的格式。

我尝试在我的 .htaccess 中使用此代码

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

## don't touch /forum URIs
RewriteRule ^forums/ - [L,NC]

## hide .php extension snippet

# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L]

# To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [L]

此代码只是从 URL 中删除 .php 扩展名。还需要去掉问号。


该代码似乎来自我的答案之一:)

将您的代码替换为:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

## don't touch /forum URIs
RewriteRule ^forums/ - [L,NC]

## hide .php extension snippet

# To externally redirect /dir/foo.php?id=123 to /dir/foo
RewriteCond %{THE_REQUEST} ^GET\s([^.]+)\.php\?id=([^&\s]+) [NC]
RewriteRule ^ %1/%2? [R,L]

# To internally forward /dir/foo/12 to /dir/foo.php?id=12
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/([^/]+)/?$ $1.php?id=$2 [L,QSA]

# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^GET\s([^.]+)\.php\s [NC]
RewriteRule ^ %1 [R,L]

# To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*?)/?$ $1.php [L]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我想使用 .htaccess 从网址中删除问号和 .php 扩展名 的相关文章

  • WooCommerce 使用 AJAX 设置购物车数量?

    我已经为此绞尽脑汁好几天了 需要一些指导 我正在为 WooCommerce 网站完全从头开始制作自定义主题 现在我正在尝试让购物车功能正常工作 我一直试图使用按钮 来更新购物车中产品的数量 对我来说问题似乎是WC 我在functions p
  • 从 octobercms 中的非 ajax 表单获取输入值

    我正在尝试构建一个简单的搜索功能 下面是我的搜索表格
  • .htaccess 异常导致主目录出现问题

    这是我的目录结构 localhost or livehost app bootstrap public vendor code demo 这是我的 htaccess
  • PHP 开发相当于 Mongrel/Webrick 吗?

    PHP 开发中是否有与 Rails 开发期间使用 Mongrel Webrick 等效的方法 我通常在端口 3000 上使用 Mongrel 在开发过程中为我的 Rails 应用程序提供服务 我从事 PHP 开发已经有几年了 据我所知 方法
  • zip 文件的校验和

    我目前正在开发一个工具 它上传一组文件 然后使用 md5 校验和将文件与上一批上传的文件进行比较 并告诉您哪些文件已更改 对于常规文件 这工作正常 但某些上传的文件是 zip 存档 即使其中的文件相同 它们几乎总是会发生变化 有没有一种方法
  • 负载平衡集群中的 PHP 会话 - 如何?

    好的 我得到了这个完全罕见的负载平衡 PHP 网站的独特场景 令人遗憾的是 它过去没有进行负载平衡 现在我们开始遇到问题 目前唯一的问题是 PHP 会话 当然 一开始没有人想到这个问题 因此 PHP 会话配置保留为默认值 因此 两台服务器都
  • 使用 php 在多维数组中按键排序[重复]

    这个问题在这里已经有答案了 可能的重复 在 PHP 中对多维数组进行排序 https stackoverflow com questions 2059255 sorting multidimensional array in php 如何在
  • 为什么验证不起作用并跳转到另一个页面?

    我写了一个customer display php来验证数据 到目前为止只有名字 但无论名字字段是否为空 网页都会跳转到customer search php并且没有更改数据库中的信息 为什么
  • 如何在类似 MVC 的页面中加载基于漂亮 URL 的类?

    我想请教一些关于如何解决这个问题的提示 我正在尝试构建自己的 MVC 网站 我了解了 URL 的基础知识 http example com blog cosplay cosplayer expo today 博客 gt 控制器cosplay
  • 如何在 PHP 中使用 cURL 发出同时包含 GET 和 POST 参数的请求?

    其他人已经问过如何从 perl java bash 等执行此操作 但我需要在 PHP 中执行此操作 并且我没有看到任何已提出的专门与 PHP 相关的问题 或包含 PHP 的答案 My code ch curl init url curl s
  • PHP:读取字体文件的 TrueType/OpenType 元数据

    如何阅读字体详细信息 例如 字体在其元数据中包含版权 姓氏 设计者 版本等信息 我还希望脚本能够计算文件中的字形数量 并返回字体支持的语言 例如 典型的字体可能包含西方语言 瑞典语和罗马语言支持 并具有数百个字形 它应该支持 truetyp
  • WordPress 分页自定义帖子类型

    我有一个名为 新闻 的页面 使用页面模板page newslist php 它应该显示来自自定义帖子类型 也称为新闻 的帖子 我意识到两者具有相同的名称会导致问题 因此在注册自定义帖子类型时 我进行了重写以将其与页面区分开来 rewrite
  • 使用 XSLT 将 XML 转换为 SQL

    由于我无法控制的原因 我将获得一个 XML 文件和一个 XSLT 文件 该文件可以将 XML 文件转换为 SQL 代码或错误 现在让我们假设我们可以信任提供 XML 文件的人不会在 XML 中包含危险的构造 我什至不知道是否应该使用 Sim
  • 为什么我的 if 语句没有按我预期的方式工作?

    我正在尝试实现以下目标 我向我的 SQL 数据库询问使用SELECT FROM subjects 这样做之后我要求使用数组mysqli fetch assoc 在那之前一切都很好 现在的问题是 当我尝试在每个循环中修改 genero 的值
  • apache_request_headers() 与 $_SERVER

    据我所知 apache request headers 提供与以下相同的信息 SERVER 但按键略有不同 为什么有人应该使用apache request headers 而不仅仅是从那里获取这些信息 SERVER 我在 Centos 上使
  • 使用 PHP 的 MySQL 连接字符串

    我正在尝试通过本地计算机连接到托管在我的服务器上的数据库 我的服务器有cPanel 11 它是一个典型的共享服务器 由CentOS提供支持 安装了PHP和MySQL 准确地说 我在同一台服务器上持有经销商帐户 我想在不同帐户或域之间访问数据
  • 如何仅使用 PHP5 RecursiveDirectoryIterator 类递归显示具有特定文件类型的文件夹和子文件夹

    您好 我正在尝试使用 FilterIterator 上的扩展来获取 RecursiveDirectoryIterator 类 但由于某种原因 它仅在根目录上进行迭代 我的代码是这样的 class fileTypeFilter extends
  • 从数据库填充复选框

    我有两个表 第一个由与名称关联的 id 组成 1 汽车 2 火车 3 普通 ETC 第二个表由两个字段 user id 和第一个表中的 id 组成 例如 1 1 2 1 3 当用户转到该页面时 我试图重新填充选定的复选框 首先 您查询数据库
  • Laravel $request->file() 返回 null

    尝试在后端使用 Laravel 上传文件时遇到问题 Issue Laravel request gt file 方法返回 null Setup 我使用以下方法构建了一个 AJAX 请求超级代理人 https github com visio
  • 一种无需 JavaScript 即可在 PHP 中确定浏览器宽度的方法?

    首先有吗 或者我必须使用javascript 我希望能够更改使用的 CSS 因此 frex 我可以为移动设备或其他设备加载较小的字体 不幸的是 仅使用 PHP 无法检测用户分辨率 如果您使用 Javascript 则可以在 cookie 中

随机推荐

  • Objective C 将联系人添加到 iPhone 中的特定组

    我正在制作一个在地址簿中存储联系人的应用程序 我正在使用 Xcode 4 2 我知道如何在地址簿中添加联系人 假设我在联系人列表中有一个名为 A 的组 我想将此联系人添加到该组中 该怎么做 这是我正在使用的代码 ABAddressBookR
  • 在 MATLAB 中调整图像大小

    我正在尝试创建一个函数 根据家庭作业的值 scale zoom 缩放图像 我不想使用 MATLAB 内置函数resize 在此函数中 所以我尝试进行插值 任何帮助将不胜感激 这是我到目前为止所拥有的 function pic new sca
  • TCL 脚本:变量作为函数的参数

    我正在尝试使用 Amira 进行一些简单的脚本编写 它使用 TCL 但我不能保证它是标准版本 我想从一个对象读取属性并将其分配给另一个对象 在命令窗口中 过程如下 Image1 获取变换 0 1 0 2 0 3 0 0 0 0 0 0 1
  • liquibase 使用 Maven 和两个数据库

    我有以下结构来从 Maven 运行一个数据库
  • PHP 互斥(mutex)

    阅读一些有关 PHP 中锁定的文本 它们主要都是针对http php net manual en function flock php 本页讨论在硬盘上打开文件 真的是这样吗 我的意思是 这使得锁定非常昂贵 这意味着每次我想要锁定时我都必须
  • android 通过显式 TLS 进行 ftp 文件传输

    我在一遍又一遍地尝试让它工作但没有成功后发布这个问题 我尝试使用 apache commons 库在 android 中实现 FTP 文件传输 通信必须通过显式 TLS 身份验证完成 我可以成功登录 连接到服务器并列出文件 但每当我尝试获取
  • 如何在字符串中的字符串周围加粗两个单词,但不重叠句子?

    我需要将搜索词及其上下文 在句子中 加粗 考虑字符串 Lorem ipsum dolor 坐 amet 连接脂肪精英 如果搜索词是Lorem ipsum 那么结果应该是 Lorem ipsum dolor 坐阿梅特 连接脂肪精英 如果搜索是
  • C 中的 sizeof() 函数 [重复]

    这个问题在这里已经有答案了 main char a Visual C char b Visual C printf n d d sizeof a sizeof b printf n d d sizeof a sizeof b sizeof
  • C 库函数 fflush(stdin) 的替代方案

    谁能解释一下下面的代码是如何解释的 我真的不明白 while c getchar n c EOF 我知道它用于刷新输入流并且可以用标准 C 库函数替换 fflush stdin while c getchar n c EOF 这会读取输入字
  • AADSTS50020:租户中不存在用户帐户

    我能够将另一个租户创建的应用程序注册为我自己租户的企业应用程序 我以用户身份登录该应用程序 但收到以下错误 AADSTS50020 用户帐户 电子邮件受保护 来自身份提供商 https sts windows net aaaaaaaa bb
  • 如何将 std::string 转换为 double

    通常 当我用 C 编写任何内容时 我需要将char进入一个int我只是做了一个新的int等于字符 我使用了代码 片段 string word openfile gt gt word double lol word 我收到的错误是 Code1
  • 如何正确地将数据保存到数据库中?

    我通常将新数据保存到数据库中 如下所示 this gt MyTable gt set array id gt id code gt temp code status gt status age gt age location gt loca
  • 如何使用 iTextSharp 转换为 PDF

    ASP
  • 从 Parse.com 检索 PFFile 时“在解包可选值时意外发现 nil”

    当我检索 Parse com 中存储的 PFFile 时遇到问题 let user PFUser currentUser let userImageFile user profileImage as PFFile userImageFile
  • MQQueueManager消息池

    我过去使用 RabbitMq 作为 MessageQueue 当收到消息时触发事件非常简单 我查看了 IBM 安装程序提供的 NET 源代码 但发现处理它的方法不太好 查看示例 SimpleSubscribe 它做了这样的事情来池化 get
  • 如何维护数据库结构的修订控制?

    跟踪项目数据库结构更改的最简单方法是什么 当我更改数据库的某些内容 例如 添加新表 向现有表添加新字段 添加索引等 时 我希望将其传播到团队的其他成员 并最终传播到生产服务器 最小的麻烦和努力 目前 解决方案相当薄弱 并且依赖于人们记住做事
  • 为什么 TypeScript 无法从过滤数组推断类型?

    下面是一些示例代码 TypeScript 推断类型validStudents as Students 对于任何阅读代码的人来说 显而易见的是 因为所有无效记录都被过滤掉了 validStudents可以安全地被认为具有某种类型ValidSt
  • 递归执行广度优先搜索

    假设您想实现二叉树的广度优先搜索递归地 你会怎样做呢 是否可以仅使用调用堆栈作为辅助存储 我假设这只是某种思维练习 甚至是一个技巧作业 面试问题 但我想我可以想象一些奇怪的场景 由于某种原因你不允许任何堆空间 一些非常糟糕的习惯 内存管理器
  • 在VBA中修改现有的excel连接名称

    我需要更新 Excel 工作簿的 SQL 连接的连接名称 这是我的尝试 我已经能够通过执行标准替换来修改连接字符串和命令文本 Sub ConnectionString modify Dim i As Long Dim cnt As Long
  • 我想使用 .htaccess 从网址中删除问号和 .php 扩展名

    我在 htaccess 中遇到重定向 URL 问题 我想从 URL 中删除 php 和问号 例如 www example com test php id 12 to www example com test 12需要这样的格式 我尝试在我的