自动重定向到干净的网址

2024-04-15

我如何在 php 中自动将网站从脏网址重定向到干净网址,例如

http://www.mysite.com?page=page1&action=action1

to

http://www.mysite.com/page1/action1

您必须检查它是否是干净的请求。 否则你会陷入无限循环

这是一个example来自我的一个项目:

.htaccess

RewriteEngine On
RewriteRule ^game/([0-9]+)/ /game.php?newid=$1

game.php

if (isset($_GET['id'])) {
  $row = dbgetrow("SELECT * FROM games WHERE id = %s",$_GET['id']);
  if ($row) {
    Header( "HTTP/1.1 301 Moved Permanently" ); 
    Header( "Location: /game/".$row['id']."/".seo_title($row['name'])); 
  } else {
    Header( "HTTP/1.1 404 Not found" ); 
  }
  exit;
}

if (isset($_GET['newid'])) $_GET['id'] = $_GET['newid'];

因此,您必须验证它是直接“脏”调用还是重写调用。
然后仅重定向前一个。
您还需要一些代码来构建干净的网址。

另外,在 url 错误的情况下显示 404 而不是重定向也非常重要。

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

自动重定向到干净的网址 的相关文章

  • PHP 致命错误:未找到“MongoClient”类

    我有一个使用 Apache 的网站 代码如下 当我尝试访问它时 我在 error log 中收到错误 PHP Fatal Error Class MongoClient not found 以下是可能错误的设置 但我认为没有错误 php i
  • shell_exec 的输出被截断为 100 个字符

    当在 shell 中运行以下命令时 curl F file filename http 192 168 0 1 产生以下输出 Accuracy 0 0 1 classification Accuracy 0 0 1 classificati
  • 为什么 LinkedIn v2 Share API 在任何 v2/shares 端点上给出权限不足的错误?

    当我调用任何 v2 LinkedIn 共享 API 端点时 例如https api linkedin com v2 socialActions https api linkedin com v2 socialActions share UR
  • 通过php将mp3转换为ogg

    我有一个网站 用户可以上传音乐并将其转换为 mp3 但我需要 mp3 和 ogg 文件支持才能以 html5 播放音乐 那么 有没有可以将mp3转换为ogg的php脚本呢 使用 ffmpeg 您可以直接从 php 脚本执行命令
  • 使用 PHP 将 SVG 图像转换为 PNG

    我正在开发一个网络项目 该项目涉及动态生成的美国地图 根据一组数据为不同的州着色 这个 SVG 文件为我提供了一张很好的美国空白地图 并且很容易更改每个州的颜色 困难在于 IE 浏览器不支持 SVG 因此为了让我使用 svg 提供的便捷语法
  • 简单的颜色变化

    我正在创建一个用户界面 用户可以在其中更改页面的颜色值 我想要的是获取分配给其背景颜色的值并将其变亮一定程度 我只是想获得一条亮点线 而不必每次都制作新图像 示例 用户将背景颜色设置为 ECECEC 现在我希望某个元素边框变成 F4F4F4
  • PHP 和 DOM 文档

    我有一个关于 DOMDocument 的使用和创建 XML 的问题 我有一个 PHP 程序 加载到 XML 文件中 处理XML的每个节点 行 将其发送到另一个进程 然后该进程返回一个 XML 元素 我获取节点的字符串表示形式 以便可以创建
  • 当用户再次访问同一页面时保持登录状态?

    目前我正在使用会话来登录用户 但是当我关闭浏览器并再次打开它时 我必须再次登录 你如何让用户在 2 周内保持登录状态 那么是通过cookie吗 那么您想要 在这台计算机上记住我 选项吗 这是一种与语言无关的方法 创建一个至少包含以下内容的数
  • 有没有办法在不使用 foreach 或其他函数的情况下在 PHP 中内爆关联数组的键和值?

    我有一个像这样的关联数组 myarray array a gt 1 b gt 2 c gt 3 我想显示数组键和值 如下所示 a is 1 b is 2 c is 3 我不想使用 print r 或 var dump 来执行此操作 我也不想
  • 未找到“MongoId”类(带有 MongoDB Doctrine 的 Zend 框架)

    我目前正在尝试将 MongoDB 与 ZendFramework 中的 Doctrine 集成 我做了很多教程 在 StackOverflow 或其他地方 但没有任何效果 我一步步按照教程进行操作 http www bigwisu com
  • json_encode 创建格式错误的 JSON 数据?

    我有一个 codeigniter 应用程序将一些数据从数据库返回到视图 我正在尝试将其作为 json 数据发送回来 问题是返回的数据格式错误 它看起来像这样 2 5 Admin1 2 10 Admin2 当我在 jsonlint com 上
  • HTTP_REFERER 返回 NULL,$_SERVER 中不存在密钥

    使用以来第一次 SERVER HTTP REFERER 它给了我NULL因此 当我做var dump SERVER the HTTP REFERER密钥不存在 我还尝试使用不同的浏览器和不同的网站访问网站 但没有结果 该网站在基于 Linu
  • .htaccess 在动态文件夹名称中加载索引

    我在 htaccess 加载动态文件夹名称中的索引时遇到问题 这是我的目录结构 root products gt this is constant folder name 而不是使用 GET 获取产品 url root products i
  • 返回上一页

    我正在使用表格来 评价 页面 此表单将数据 发布 到其他地方的 php 脚本 我只是想在处理表单后显示一个链接 这将使用户返回到上一页 我可以在 php 脚本中使用 javascript 来执行此操作吗 GF 您可以使用链接来调用histo
  • 使用 PHP 修剪字符串开头的任何零

    用户将在字段中填写与其帐户相关的数字 不幸的是 一些用户会在号码开头添加零来组成六位数字 例如 000123 001234 而其他用户则不会 例如 123 1234 我想 修剪 前面带有零前缀的用户的数字 因此如果用户输入 000123 它
  • 如何从列表创建多维数组?

    我在 MySQL 中有一个带有父 ID 的类别列表 如何从列表中创建 PHP 数组 ID Category Parent ID 1 Car NULL 2 Education NULL 3 Mathematics 2 4 Physics 2
  • WooCommerce 自定义产品类型选项不隐藏自定义产品选项卡

    我刚刚向我的 WC 管理产品页面添加了自定义产品类型选项 add filter product type options this filter product type options 99 1 public function filte
  • 在 Windows 上查看 PHP 文件夹

    我正在编写一个简单的 PHP 脚本来监视文件夹及其子文件夹的任何更改 新文件 修改 删除 然后执行操作 我将使用 Windows 上的命令行运行此脚本php f script php 我一直在寻找一种在 Windows 上观看具有 PHP
  • 使用 PHP 创建图表并导出为 PDF

    我正在寻找有关使用 PHP 创建图表的建议 我还希望能够将这些图表导出到 PDF 文档 我目前正在使用谷歌图表 但我不喜欢将我的所有信息发送到谷歌的想法 我更喜欢自己的托管解决方案 我见过很多 Flash 解决方案 但我不知道有什么方法可以
  • PHP 用星号替换所有字符

    假设我有一个字符串形式的密码 password thisisaplaintextpassword 我怎样才能把它变成下面的样子 password 我想通过电子邮件向用户发送他们的帐户详细信息 但不想发送整个内容 Use 字符串重复 http

随机推荐

  • 使用mutual_info回归进行特征选择时的重塑错误

    我正在尝试使用mutual info regression 和 SelectKBest 包装器进行一些功能选择 然而 我不断遇到一个错误 表明我的功能列表需要重新整形为二维数组 不太确定为什么我不断收到此消息 feature selecti
  • 了解 Python 中的命名元组类型名和 pickle 的问题

    今天早些时候 我在尝试腌制时遇到了麻烦命名元组 http docs python org 2 library collections html namedtuple factory function for tuples with name
  • 。 ObjectStateManager 中已存在具有相同键的对象ObjectStateManager 无法跟踪具有相同键的多个对象

    我试图简单地更新实体对象 然后收到此错误 所有对我所做的错误的谷歌搜索都让我得到了复杂的解释 任何人都可以简单地说一下吗 我正在研究这个简单的教程 http aspalliance com 1919 ASPNET 40 and the En
  • Doxygen 和 Objective-C 类别

    尽管 Doxygen 的最新版本声称可以更好地处理 Objective C 类别 http www doxygen nl manual changelog html 它似乎仍然对我的源代码中的类别感到窒息 我想知道是否有人已经让它正确地记录
  • 使用 Moq 模拟单元测试的异步方法

    我正在测试一种创建 Web 的服务方法API称呼 使用正常的HttpClient如果我还在本地运行 Web 服务 位于解决方案中的另一个项目中 则可以很好地进行单元测试 但是 当我签入更改时 构建服务器将无法访问 Web 服务 因此测试将失
  • 如何在违反唯一约束时返回 Postgres 中的原始行

    在 Postgres 中 如果您尝试插入具有唯一索引的值 您将看到以下内容 duplicate key value violates unique constraint testing email key DETAIL Key email
  • Spring MVC:复杂对象作为 GET @RequestParam

    假设我有一个页面列出表上的对象 并且我需要放置一个表单来过滤表 过滤器作为 Ajax GET 发送到如下 URL 而不是在我的控制器上有很多参数 例如 RequestMapping value action public ResponseB
  • 如果另一列中有匹配的单元格,则 Excel 公式从另一列返回值[重复]

    这个问题在这里已经有答案了 我有两列 如下所示 ID Qty FW01 20 AW08 100 FW01 30 FW01 40 AW55 60 我需要公式在列 ID 中搜索并查找此列中的所有相似单元格 并返回 Qty 列中与此 ID 匹配的
  • 下载 webroot 之外的文件

    好的 首先道歉 因为我意识到这是一个之前已经讨论过很多次的主题 相信我 我知道 我已经阅读了之前的所有问题和答案 但仍然无法使其发挥作用 我有一个包含可下载文件的文件夹 出于安全目的 我将此文件放置在 Webroot 之外 然而 尽管我尽了
  • C++ std::set 更新很乏味:我无法就地更改元素

    我发现更新操作std set乏味 因为没有这样的 API参考参数 http en cppreference com w cpp container set 所以我目前所做的是这样的 find element in set by iterat
  • 如何构建没有声音空安全的APK

    我可以在手机上以发布模式运行应用程序并传递标志 no sound null safety release 但 两者都不flutter build apk enable experiment non nullable nor flutter
  • 如何在 github 上查看整个代码库?

    我想查看 GitHub 上 git 存储库的单个分支中的所有代码 我是一名教授 代码是学生论文的一部分 任何单个提交都只会影响代码的一小部分 如何执行审查 使我能够对任何提交的所有代码进行逐行注释 我相信这个问题与如何制作 github P
  • Symfony2 生产时错误 500 而不是 404

    在我的 Symfony2 项目中 我进入了开发模式正确的 404 异常屏幕 但在生产模式下 我遇到了空白屏幕 HTTP 状态代码为 500 而不是 404 我正在使用位于的自定义错误模板app Resources TwigBundle vi
  • 从 youtube v3 API 获取实际配额限制

    我想从 youtube api 获取我的实际配额限制 有这种可能吗 当我打开这个页面时 我看到了我的极限 但是我怎样才能得到这个呢 不存在此类历史配额使用情况 API 您应该按照以下建议避免配额问题https youtube eng goo
  • AS3 for ios:如何序列化数组然后保存它

    我有一个多维数组 我想序列化它 然后使用共享对象保存它 我尝试了很多事情 但每次都会出现问题 JSON 不能有类型 ByteArray 结果不是 String 那么 SharedObject 不想保存它 共享对象可能不是解决方案的一部分 所
  • 为什么 XPATH count 函数返回 double 而不是 int?

    以下代码片段产生一个无效转换异常 static int XPathCount var doc new XmlDocument doc LoadXml
  • 稀疏矩阵上的 einsum

    看来是numpy的einsum功能不适用于scipy sparse矩阵 有没有其他方法可以做这些事情einsum可以用稀疏矩阵吗 回应 eickenberg 的回答 我想要的特定 einsum 是numpy einsum ki kj gt
  • 使用/从 Springfox 迁移到 springdoc-openapi 有什么优势吗?

    为了在 SpringBoot 2 7 中启用 Swagger 选择 springdoc openapi 相对于 Springfox 的优点 缺点是什么 这可能被认为是基于意见的 但实际上有事实支持使用 springdoc 而不是 Sprin
  • Chrome 61 的本地存储

    从 Chrome 61 开始 添加到本地阶段的任何项目似乎不再在本地配置文件中创建为物理文件 之前运行命令 localStorage setItem key value 将创建一个与该网站相对应的 SQLite 文件 localappdat
  • 自动重定向到干净的网址

    我如何在 php 中自动将网站从脏网址重定向到干净网址 例如 http www mysite com page page1 action action1 to http www mysite com page1 action1 您必须检查它