【问题标题】:htaccess - redirect to php file with GET [closed]htaccess - 使用 GET 重定向到 php 文件 [关闭]
【发布时间】:2014-02-23 22:23:42
【问题描述】:

某些用户将使用以下 URL 访问我网站的内容:www.example.com/example

但我需要被重定向到:www.example.com/page.php?p=example

所以我把斜杠后面的所有值都重定向到page.php,作为“p”参数的值。

【问题讨论】:

  • 听起来是个好主意,而且之前已经实施过很多次。你有问题吗?
  • 这个问题似乎是题外话,因为它是关于单击您在输入问题标题时得到的重复项。
  • 我无法准确解释问题所在,我的英语不好,但巧合的是,我在以下位置找到了我需要的东西:corz.org/server/tricks/htaccess2.php

标签: php file .htaccess get


【解决方案1】:

这个问题很简单,以前有人问过。
这就是为什么我不会给你确切的答案,而是将你重定向到解释你应该做什么的教程和指南。这将使您更好地理解解决方案。

如果您在 Apache 服务器上运行您的网站,则可以使用 Mod Rewrite。 https://httpd.apache.org/docs/current/mod/mod_rewrite.html

还可以看看这个: http://corz.org/server/tricks/htaccess2.php

但是由于人们似乎因此而对我投了反对票,我会帮助你。
在您的 .htaccess 文件中,放置以下内容

每当您使用 mod_rewrite(Apache 的所有这些魔法部分)时,您都需要在任何 ReWrite 规则之前执行此操作。对于每个 .htaccess 文件,您只需执行一次。
+FollowSymLinks 必须启用任何规则才能正常工作,这是重写引擎的安全要求。通常它在根目录中启用,您不必添加它,但这样做并没有什么坏处

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*) page.php?p=$1 [NC]

NC 表示 no-case 也就是 不区分大小写
您还可以添加 L (-> [NC,L]) 以表明这是最后重写规则。

您可能已经注意到,上面的解决方案使用正则表达式来匹配变量。这只是意味着.. 匹配 (.+) 中的部分并使用它在新 URL 中构造“$1”。换句话说,(.+) = $1 您可以有多个 (.+) 部分,并且对于每个部分,mod_rewrite 会在您的目标(又名“替代”)URL 中自动创建一个匹配的 $1、$2、$3 等。

【讨论】:

  • 为什么有人-1这个?尽管他的问题是题外话,但我仍然喜欢将 OP 重定向到解决方案
  • 因为它是一个非常模糊的几乎只有链接的答案。如果你想帮助 OP,你可以找到一个合适的骗子。
  • 我宁愿给他解释 Mod_rewrite 的 Apache 网站,也不愿给他这个简单问题的字面解决方案
  • sigh 感谢您提醒我不要评论否决票。它永远不会结束......
猜你喜欢
  • 2012-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多