.htaccess RewriteRule 不起作用,需要生成一个友好的 URL

2024-02-22

我有这个动态链接:

http://www.nortedigital.mx/article.php?id=36175&t=dobla_las_manos_el_snte__avala_reforma_educativa

我需要像这样进行 URL 友好转换:

http://www.nortedigital.mx/36174/se_enriquecio_elba_en_sexenios_del_pan.html

我有这个重写规则:

RewriteRule ^([^/]*)/([^/]*)\.html$ /article.php?id=$1&t=$2 [L]

但不起作用。请问有人可以帮助我吗?


您必须在 RewriteCond 中捕获查询字符串并在 RewriteRule 中使用它

RewriteEngine On
RewriteCond %{QUERY_STRING} ^id=(\d+)&t=(.+)$
RewriteRule ^/?article\.php$ /%1/%2.html? [R,L]

这会将客户端重定向到请求,即/36174/se_enriquecio_elba_en_sexenios_del_pan.html。现在您必须提供真实的页面。为此,我们添加了一条附加规则,类似于您问题中已有的规则

RewriteRule ^/?(.+?)/(.+?)\.html$ /article.php?id=$1&t=$2 [L]

但现在,存在无限的重定向循环。我们通过使用环境变量来打破这个问题。这是完整的规则集

RewriteEngine On

RewriteCond %{ENV:REDIRECT_SEO} ^$
RewriteCond %{QUERY_STRING} ^id=(\d+)&t=(.+)$
RewriteRule ^/?article\.php$ /%1/%2.html? [R,L]

RewriteRule ^/?(.+?)/(.+?)\.html$ /article.php?id=$1&t=$2 [L,E=SEO:1]

只要未设置环境变量,此规则就会按照上面的方式进行重定向。它提供真实的页面article.php同时设置环境变量,防止循环。

您也可以使用 cookie 来实现此目的。但如果客户端禁用 cookie,这种情况就会被破坏。

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

.htaccess RewriteRule 不起作用,需要生成一个友好的 URL 的相关文章

  • Apache mod_rewrite 内部到不同的端口

    是否可以使用 mod rewrite 内部重定向 因此地址栏中的 url 不会更改 到同一主机上的不同端口 例如 http host com 8080 gt http host com 9999 myapplication param va
  • 重写 .php 扩展名

    请问我该如何重写 有人可以重写这个网址吗 to http localhost display news cat 14 2 http localhost display news cat 14 2 谢谢 您可以使用 htaccess 文件来做
  • URL 重写 .htaccess

    我正准备开发一个具有以下 url 结构的网站 我是 url 重写的新手 想知道处理此问题的最佳方法 http domain com index php http domain com about about php http domain
  • htaccess 正则表达式目录到变量

    我需要对某些 URL 从目录到变量进行 301 重定向 EXAMPLE http domain com es stackoverflow gt http domain com stackoverflow lang es http domai
  • 谷歌会索引带有隐藏div的页面吗?

    我开始重新设计和开发一个包含大量文本的网站 并且我正在考虑如何组织网站上的信息 使其看起来更干净 在网站的某些部分 我想实现一个 jquery 切换效果 其中某些内容放置在隐藏的 div 中 并且该内容将根据用户的 onclick 事件显示
  • 仅当未找到文件时才重定向请求?

    我希望有一种方法可以使用 mod rewrite 和 Apache 来做到这一点 但也许还有另一种方法可以考虑 在我的网站上 我为客户的网站重新设计版本设置了目录 如果网络根目录是 home blah www 客户端目录将是 home bl
  • 如何使用 wampserver 在本地系统上将 URL 从“localhost”更改为其他内容?

    在 Windows 计算机上 有一个系统在本地 wampserver 上运行 但当应用程序在 localhost 上运行时 URL 却另有说明 虽然我希望基于目录结构的 URL 是这样的 http localhost pro include
  • HTTP 到 HTTPS 301 重定向代码不起作用,显示重定向过多

    我正在为我的网站之一使用 Bluehost 最近 最近 我已将我的网站从 HTTP 迁移到 HTTPS 之后 我使用了不同的代码 包括以下代码 在我的网站上强制使用 HTTPS SSL Rewrite RewriteEngine On Re
  • 如何通过htaccess在codeigniter中隐藏index.php和控制器名称

    我想从我的 codeignier url 网站隐藏 index php 和控制器名称 我也想替换这个术语 seo test product ad test product 我在下面提到了我的 htaccess 文件 请指导我如何解决这个问题
  • 重定向到另一个文件夹

    我读了这个 htaccess 重写以将根 URL 重定向到子目录 https stackoverflow com questions 990392 htacces rewrite to redirect root url to subdir
  • mod_rewrite 有例外

    为了将我的服务器上的每个请求重定向到我使用的安全连接 RewriteCond SERVER PORT 80 RewriteRule https mywebsite com 1 R L 效果完美 但是我需要两条路径不被重定向 说我什么时候访问
  • 使用 .htaccess 重定向到动态相对路径?

    是否可以使 htaccess 理解 动态相对路径并正确重定向到它们 我的设置如下 http domain com htroot aaa xyz http domain com htroot bbb xyz http domain com h
  • mod_rewrite GUI?

    任何人都有用于开发 mod rewrite 规则的图形工具 理想情况下 它会显示重写管道 然后当给定 uri 实例时 会显示应用时的转换 让它们正确设置总是很痛苦 因此任何使其变得更容易的方法都会有所帮助 对于 htaccess 阅读 mo
  • ASP.NET Core URL 重写

    我正在尝试将我的网站从 www 重定向到非 www 规则以及 http 到 https https example com https example com 在中间件中 我曾经在 web config 中进行这些重定向更改 例如
  • 重写规则错误:HTTP 错误 500.50 - URL 重写模块错误。表达式“https://abc.com/{R:1}”无法展开

    每当有人通过 HTTP 协议发出请求时 我都会重写 url 以使其成为 HTTPS 这是 web config 中的代码
  • 管理面板的 htaccess 重写规则

    我的网络应用程序中有这样的 url 模式 www mysitename com foldername controller method 所有请求的页面首先被重定向到根文件夹上的index php 然后处理请求的页面 但每当我进入管理面板
  • .htaccess 在动态文件夹名称中加载索引

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

    public html www domain com public html subdomain subdomain domain com public html htaccess public html subdomain htacces
  • apache htaccess 将第一个段映射为参数而不干扰其他参数

    这可能是一个经典的 htaccess 问题 但我仍然找不到适合我的具体情况的问题 这是closest https stackoverflow com questions 9299793 apache httaccess rewriting我
  • htaccess:删除扩展名,并重定向到index.php?p=

    RewriteRule a zA Z0 9 index php page 1 L 我之前的代码将 ex domain com about 重写为domain com index php page about 所以现在 我想添加一种安全措施

随机推荐

  • 将python程序安全连接到mysql

    我想使用 MySQLdb 从我的 python 程序连接到 MySQL 我很担心 因为我需要将用户名和密码输入 py为了连接MySQL数据库 还要进入inno setup 没有人能找到用户名和密码并访问我的数据库吗 我该如何解决这个问题 我
  • Android 列表视图的自定义布局

    我正在使用列表视图 如下所示 String Shows new String Dexter Breaking Bad The Big Bang Theory Leverage ListView tv show list ListView v
  • SQL Server 选择不同的最新值

    我有一个包含大量行 gt 10K 的表 大多数行都有重复role与相关的值username 我想做的是按不同和最新选择行role添加者请求ID 我几乎已经拥有了 但是让我感到不安的部分是null某些值请求ID字段 因为这些请求是在添加该列之
  • Subversion 存储库工作副本结构的最佳实践?

    我刚刚开始学习如何使用 Subversion 构建我的 Web 应用程序 所以请耐心等待 以下是我的设置方法 我的域之一将托管我所有项目的存储库 我有标准的标签 分支 主干结构 它位于公共文件夹中 因此其他开发人员可以访问它 我的实时服务器
  • React 表不包含默认导出

    我想使用react table库在react中创建一个表 版本 react table 7 0 0 rc 15 当我尝试这个时 import ReactTable from react table import react table re
  • 将 .NET Guid 转换为 MongoDB ObjectID

    如何将 NET GUID 转换为 MongoDB ObjectID 在 C 中 另外 我可以将其再次从 ObjectID 转换回相同的 GUID 吗 你无法转换ObjectId into GUID反之亦然 因为它们是两个不同的东西 不同的大
  • Android Studio 中的 appLocale 设置

    我创建了广播组 用户可以在其中选择他们想要的语言 并将应用程序语言更改为所选语言 但我无法使用这些功能 不知道如何 我做了什么 我做了settingsActivity 我添加了广播组 我写过setAppLocale功能 我已经设置了onRa
  • 创建自己的 Wordpress 循环的最佳方法是什么?

    使用其内置函数从 Wordpress 输出内容似乎有三种主要方法 WP Query作为推荐之一 WP Query http codex wordpress org Function Reference WP Query 查询帖子 http
  • symfony2 - assetic assetic:dump 命令无法正确创建样式表

    由于某种原因 我无法加载 css 文件 这是我使用的包的结构 BD WebsiteBundle public css 这是我尝试加载 css 文件的方法 stylesheets bundles bdwebsite css filter cs
  • 如何在 Android Q 中请求外部文件访问权限?

    Heard 安卓Q引入了一项新的安全功能 称为 范围存储 它限制访问外部存储中的文件 我的问题是我必须将文本文档从应用程序保存到用户指定的位置 这是否需要任何形式的许可而不是READ EXTERNAL STORAGE and WRITE E
  • 如何将嵌套字典列表转换为pandas DataFrame?

    我有一些包含嵌套字典的数据 如下所示 mylist a 1 b c 2 d 3 a 3 b c 4 d 3 如果我们将其转换为 pandas DataFrame import pandas as pd result dataframe pd
  • PHP 数组递归循环

    我想在 PHP 中循环遍历一个数组 循环必须是递归的 因为我现在不知道有多少个数组中的数组 它用于阅读 Symfony2 中的翻译 输出格式为 a d e a f g b h i c j k l m c n o 与示例数组 array ar
  • 在没有双重调度/访问者模式的情况下解决 Java 的静态方法调度问题

    我正在使用一个类Foo提供了这些方法 String overloadedMethod Object String overloadedMethod Goo 由于 Java 在非接收者参数上静态分派 我不能只传递我的value 这是一个Obj
  • “grails clean”脚本实际上是做什么的?

    我很好奇grails clean命令 有一次我将错误的包导入到域类中 java util regex 我用它来执行正则表达式替换命令 但事实证明一切都没有改变 所以我认为我的正则表达式是错误的 但我把它留在那里以供将来完善 我的本地主机中的
  • Java Oauth2 使用 Office 365 发送电子邮件

    我正在使用 Java 1 8 Jakarta 电子邮件 版本 2 1 0 连接到 Microsoft 365 并使用 OAuth 进行 SMTP 身份验证 客户端需要使用 Oauth 身份验证 而不是基本的 smtp 身份验证 阅读文档后h
  • 如何在 MATLAB 7.0 版本中读写 DICOM 图像?

    我目前使用的是 MATLAB 7 0 版本 我需要读取 DICOM 图像并将其写回 有哪些功能可以帮助我做到这一点 You can使用迪康读 http www mathworks com help toolbox images ref di
  • Visual Studio Web 部署到 IIS 6

    有人成功使用 VS2010 的新 Web 部署功能将网站部署到 Windows Server 2003 上运行的 IIS 6 吗 当我尝试时出现以下错误 Web 部署任务失败 不能 完成对远程代理的请求 URL https myserver
  • 我可以在 GridView ItemTemplate 中使用 IF 语句吗?

    我有一个简单的 gridview ItemTemplate 如下所示
  • 查找具有重复字母的单词(排列)的排名

    尽管已经发布了很多关于这个问题的文章 但我还是发布了此内容 我不想发布答案 因为它不起作用 这篇文章的答案 查找给定字符串在所有可能的重复排列列表中的排名 https stackoverflow com questions 17620694
  • .htaccess RewriteRule 不起作用,需要生成一个友好的 URL

    我有这个动态链接 http www nortedigital mx article php id 36175 t dobla las manos el snte avala reforma educativa 我需要像这样进行 URL 友好