【问题标题】:.htaccess Redirect all url requests to single page with query.htaccess 将所有 url 请求重定向到带有查询的单个页面
【发布时间】:2016-10-18 01:48:24
【问题描述】:

我想将任何 url 请求重定向到我的“index.php”页面,以及一个查询字符串。像这样:

如果用户在地址栏中输入“mydomain.com/foo”,htaccess 会将其重定向到“index.php”,但在 php 文件 $_SERVER[] 变量中包含“foo”字符串

换句话说,我需要“mydomain.com/”之后的任何字符串保存在“index.php”文件中的变量中。

another examples:
mydomain.com/new/bar ----> "new/bar"
mydomain.com/search?color=15 ----> "search?color=15"

是否可以使用 htaccess 或必须尝试其他方式?

【问题讨论】:

  • 这当然是可能的。这个问题已经在 SO 上单独回答了大约 4548264538 次。这些答案都没有帮助您解决此任务吗? 为什么不呢?首先看一下右侧的“相关”部分。
  • @arkascha 不幸的是,我花了几个小时从上一个主题中找到正确答案。这些非常相似,但没有一个能做我的例子。
  • 当然,但那些类似的答案应该足以自己解决任务。以那个为例:stackoverflow.com/questions/28433092/… 您所要做的就是删除q=,然后您就得到了解决方案。或者你离开整个?q=$1

标签: php .htaccess


【解决方案1】:

您可以使用此规则将所有请求重写到 index.php 文件

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/index\.php$
RewriteRule ^ /index.php [L]

然后在 index.php 文件中,您可以使用以下 php 代码来获取请求的 uri:

echo $_SERVER["REQUEST_URI"];

【讨论】:

  • 谢谢!现在它对我有用。 :) 只是我应该在我的本地 apache 服务器中对其进行一些自定义
猜你喜欢
  • 2023-04-09
  • 2013-02-21
  • 2016-07-20
  • 1970-01-01
  • 1970-01-01
  • 2021-03-05
  • 2011-03-16
  • 2016-11-30
相关资源
最近更新 更多