htaccess重写不同页面的url

2023-12-13

我在 htaccess 文件中做了这个..用于从不同页面重写 url

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9_-]+)$ profile.php?username=$1 [QSA]    
RewriteRule ^([a-zA-Z0-9_-]+)/$ profile.php?username=$1 [QSA]   

而且效果很好..

现在我需要添加更多内容作为 facebook

你可以输入 facebook.com/用户名

这是:facebook.com/profile.php?username=

您可以输入 facebook.com/pagename 这是:facebook.com/pages.php?username=

并且工作正常

来自不同的页面..

我需要做这样的..

有什么帮助吗?!

RewriteRule ^([a-zA-Z0-9_-]+)$ profile.php?username=$1 [QSA]    
RewriteRule ^([a-zA-Z0-9_-]+)/$ profile.php?username=$1 [QSA]   

RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?username=$1 [QSA]  
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?username=$1 [QSA] 

您的正则表达式模式匹配相同,因此您将需要一些东西来区分页面和人员(或重定向到 profile.php 与 index.php)。

您可以通过以下两种方式之一来完成此操作。首先,您可以将所有内容转到一个页面,我们将其称为redirect.php。在此页面上,您可以检查 id 值,然后重定向。所以就像:

    RewriteRule ^([a-zA-Z0-9_-]+)/?$ redirect.php?id=$1

在redirect.php中,你抓住$_GET['id']并对其运行一些查询以确定它是页面还是人,然后使用以下内容进行重定向:

    header("Location: profile.php?username=".$_GET['id']);

如果您严格寻找 Facebook 相关内容,您可以使用图形 API 而不是数据库来确定它是页面还是个人 ID。 (不确定它是否可以同时存在于两者中 - 但我认为不能)。

如果您没有数据库或数据源来确定它是页面还是个人,那么您需要在 URL 字符串中添加一些内容来确定,例如 /pages/{pageid},然后您可以重写您的规则到:

    RewriteRule pages/([a-zA-Z0-9_-]+)/?$ index.php?username=$1  # for pages
    RewriteRule ^([a-zA-Z0-9_-]+)/?$ profile.php?username=$1  # for people

如果您无法在 URL 中使用某些内容,并且无法通过数据库访问它,那么您就不走运了,因为您遇到了两个相同的模式。

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

htaccess重写不同页面的url 的相关文章

  • PHP MySql 百分比

    我的问题是关于百分比 我不是专家 所以我会尽力以更好的方式进行解释 我的 mysql 服务器中有一个表 假设有 700 条记录 如下所示 Name country language Birth Lucy UK EN 1980 Mari Ca
  • 如何从 Laravel 中的表中选择所有列名称?

    我试图从表中获取所有列名Teller 功能 public function getTableColumns tables return DB select DB raw SELECT COLUMN NAME DATA TYPE COLUMN
  • 如何使用 phpunit 运行单个测试方法?

    我正在努力运行一个名为testSaveAndDrop在文件中escalation EscalationGroupTest php with phpunit 我尝试了以下组合 phpunit EscalationGroupTest escal
  • 如何检查PHP变量是否包含非数字?

    我只是想知道检查 PHP 变量中是否有非数字的方法以及它是否也检测字符之间的空格 需要确保我的表单字段中没有添加任何奇怪的内容 提前致谢 如果您的意思是您只想要一个包含数字的值 那么您可以使用ctype digit http php net
  • MySQL/PDO::quote() 尽管使用 PDO::PARAM_INT 参数,但仍在整数周围加上引号

    无论我传递给什么值 数据类型对 它都会出现 pdo gt quote value type 它总是将其引用为字符串 echo pdo gt quote foo PDO PARAM STR foo as expected echo pdo g
  •  
    标记内删除

    我制作了简单的 BBCode 脚本 一切正常 但后来我使用了一个 javascript 库来美化我的代码 pre pre 现在我面临的唯一问题是 br 每行代码后面的标签 pre pre tags 所以问题是我怎样才能删除 br 标记哪些在
  • PHP MySQL 使用选项/选择 HTML 表单标签进行多重搜索查询

    我正在尝试使用两个搜索字段设置基本的 MySQL LIKE 搜索 我不想拥有它 所以它有多个可选搜索字段 例如if isset POST city isset POST name 我不知道如何用 HTML 来做到这一点
  • 如何在响应ajax codeigniter后停止执行其他控制器

    我想知道如何在响应输出 json 数据后停止执行函数和涉及的其他控制器 就我这里的情况而言 我只是打电话test 函数于dashboard控制器 In dashboard构造函数将执行MY Login library In MY Login
  • 检查 PHP 中“@”字符后面的单词

    我现在正在制作一个新闻和评论系统 但是我已经在一个部分上停留了一段时间了 我希望用户能够在 Twitter 上引用其他玩家的风格 例如 用户名 该脚本看起来像这样 不是真正的 PHP 只是想象脚本 3 string I loved the
  • 将“php”作为 shell 脚本执行时的自定义 php.ini 文件

    我在跑php作为 shell 脚本 我不确定 shell脚本 是否正确 该文件以 usr bin php 这很好用 但 MongoDB 类没有正确加载php ini文件 具有extension mongo so 未使用 我该如何使用它tha
  • 从 smarty 访问 PHP 文件的变量(本地或全局)

    我有一个 php 文件 其中包含一些本地和全局变量 例如 foo 从此文件中调用 smarty 对象 如何在不更改 PHP 文件的情况下从 smarty 脚本访问 foo Thanks 如果你有一个名为 BASE 的常量变量 并且定义如下
  • “使用未定义常量”注意,但该常量应该被定义

    共有三个文件 common php controller php 和 user php 文件 common php 如下所示 文件controller php看起来像 文件 user php 如下所示 执行脚本时 会给出通知 注意 使用未定
  • 使用 SSL 证书验证 Web 浏览器

    是否可以使用 ssl 证书对 Web 浏览器进行身份验证 假设我在应用程序中存储私钥 有什么方法可以从浏览器读取密钥并尝试基于该私钥进行身份验证 您可以使用 SSL TLS 客户端证书身份验证来对浏览器 用户进行身份验证 服务器必须请求客户
  • 在 PHP 中撤销 Google 访问令牌

    正如标题所示 我想以编程方式撤销授予的访问令牌 即在 PHP 中 我发现这个他们的网站 https developers google com identity protocols OAuth2WebServer tokenrevoke 但
  • MySQL 追加字符串

    How can I append a string to the end of an existing table value Let s say I have the table below And let s say that Mari
  • 随机组合 MySQL 数据库中的两个单词

    我有一个包含名词和形容词的数据库 例如 id type word 1 noun apple 2 noun ball 3 adj clammy 4 noun keyboard 5 adj bloody ect 我想创建一个查询 它将抓取 10
  • jQuery Mobile 表单验证

    我有一个移动网站 除了验证之外一切都工作正常 基本上我希望从用户那里获取值 然后在单独的页面 process php 上处理它们 但是 在这样做之前 我需要检查以确保字段已填充 我已经研究了几种方法来做到这一点 但似乎没有一种有效 我现在有
  • Doctrine EntityManager 清除嵌套实体中的方法

    我想用学说批量插入处理 http doctrine orm readthedocs org en latest reference batch processing html为了优化大量实体的插入 问题出在 Clear 方法上 它表示此方法
  • 标准化 UTF-8 到底是什么?

    The 重症监护室项目 http userguide icu project org transforms normalization 现在也有一个PHP库 http us php net manual en class normalize
  • 为什么 Composer 降级了我的包?

    php composer phar update这样做了 删除了 2 3 0 软件包并安装了整个 2 2 5 Zend Framework php composer phar update Loading composer reposito

随机推荐

  • WP7背景音频资源不再可用

    我在用着BackgroundAudioPlayer用于我的 Windows Phone 7 音乐和视频应用程序 播放一些音乐后 我使用MediaPlayerLauncher 然后按 返回 返回到我的应用程序 每当我使用时Background
  • 如何选择模板标签内的元素? [复制]

    这个问题在这里已经有答案了
  • 根据另一个查找/映射数组替换数组中的键

    我有一个以下形式的关联数组key gt value其中 key 是一个数值 但它不是连续的数值 键实际上是一个 ID 号 值是一个计数 这对于大多数情况来说都很好 但是我想要一个函数来获取人类可读的数组名称并将其用作键 而不更改值 我没有看
  • 如何在 Matplotlib 中绘制没有线和点的误差条图?

    我目前正在使用以下代码来绘制误差条图 plt errorbar log I mean log V2 mean xerr yerr 然而 最终结果显示每个误差条交点的中心有一个圆形点 如何按照科学工作的要求只绘制误差线而不绘制中心点 use
  • 空 XmlHttp 响应文本(仅限 Google Chrome)

    我的 Google Chrome 聊天脚本有问题 有时 响应文本是空的 直到您重新加载页面 但有时它运行良好 它每秒打开一个 xmlhttp 连接 如果第一个连接好 那么后面的连接也好 在 Firefox 中 它总是好的 var url t
  • 了解 Javascript 回调参数

    关于回调的一些问题 使用一些示例代码 function uploadPhoto params var win function response console log Success console log Response respon
  • 有没有办法从控制器获取计划任务作为数组? [复制]

    这个问题在这里已经有答案了 我想从控制器获取计划任务列表 一些套餐 articles乃至堆栈溢出解释如何从命令显示它 但我没有找到如何在没有命令的情况下执行此操作 我的目标是获取一系列计划任务及其日期和描述 有没有办法从控制器获取计划任务作
  • 如何替换字符串中的括号

    我有一个包含标记的字符串列表 令牌是 ARG 令牌名称 我还有令牌的哈希图 其中键是令牌 值是我想要替换令牌的值 当我使用 replaceAll 方法时出现错误 java util regex PatternSyntaxException
  • mysql_real_escape_string() 无法建立到服务器的链接

    当我尝试使用 mysql real escape string 时出现此错误 Access denied for user ODBC localhost using password NO 我不明白为什么我必须连接到数据库来检查这些值是否可
  • 将 JSF 与 Spring 集成

    我还没有实现任何代码 我仍在研究新应用程序的整体架构 这将是我第一次使用JSF Spring 我需要将 Web 服务放在 Spring 服务 bean 业务逻辑层 前面 因为这些 bean 可以被表示层之外的其他应用程序访问 在为应用程序定
  • Scala 逆变和协变

    我正在研究 scala 的类型系统 发现了一个奇怪的情况 我有充分的理由相信 我不懂协变和协变 这是我的问题案例 我有两个类 Point 和 ColorPoint 它是 Point 的子类 class Point val x Int val
  • jQuery UI 按钮未“取消单击”

    http jqueryui com demos button default它们使用起来非常简单 但由于某种原因 我的按钮没有 取消点击 也就是说 在我单击按钮后 它保持其悬停样式 如果我将其 onClick 函数设置为仅执行一些简单的操作
  • 有没有办法检索 Dialogflow 中的对话历史记录?

    有没有办法获得用户和代理之间的完整对话 与我通过单击历史标签获得的结果非常相似 但是以编程方式获得 重点是将用户和代理之间的交互保存为文本 提前谢谢各位了 没有 API 可以直接从 Dialogflow 检索历史记录 但您可以做的是启用日志
  • 在python 2.7中同时运行脚本多次

    您好 我正在尝试多次运行脚本 但根据我的理解 希望这同时发生 我将一起使用子进程和线程 但是 当我运行它时 它看起来仍然是按顺序执行的 有人可以帮助我 以便我可以让它一遍又一遍地运行相同的脚本 但同时 它实际上有效但速度很慢吗 编辑忘记了最
  • 在 UIWebView 中显示 .rtf 文件

    我正在尝试显示为我的服务器下载的 rft 文件 我首先使用 UITextView 但我可以看到文本 但也显示了很多编码和与颜色和格式相关的奇怪字符 不管怎样 在这里搜索我发现 UITextView 无法正确显示 rtf 文本 因此 我继续尝
  • 如何在 R 中以美元格式设置条形图标签的格式?

    希望在 x 轴上的标签和条形图中的数字上添加美元符号 下面是我的代码和图表 YTD bar lt ggplot TYSales LYSales aes x as character FSCL YR y SALES geom bar stat
  • 如何在 Nuxt.js 中的内联样式中使用背景图像

    我有一个 vue我想在其中使用内联样式的文件 img src static img info production pic4 jpg class t22 a href page fresco art class btn t23 First
  • Tomcat 上的 Jersey REST 服务出现 404 错误

    我已经查看了有关该主题的所有可用答案 要么我面临一个完全不同的问题 要么我错过了一些重要的事情 服务等级 package org test import javax ws rs GET import javax ws rs Path imp
  • 通过API或网页公开数据库自增id

    我认为不公开自动递增的数据库 ID 帐户 产品等 是更好的方法 我们也许可以使用 UUID 并通过 API 或网页公开它们 但我查了一下 很多大公司似乎并不关心 谷歌 亚马逊 Facebook Twitter 似乎都有数字 自动递增帐户 I
  • htaccess重写不同页面的url

    我在 htaccess 文件中做了这个 用于从不同页面重写 url Options FollowSymLinks RewriteEngine on RewriteCond REQUEST FILENAME f RewriteCond REQ