【问题标题】:How to get URL Parameters after changing htaccess to clean URLs?将 htaccess 更改为干净的 URL 后如何获取 URL 参数?
【发布时间】:2019-07-08 17:53:06
【问题描述】:

我已激活 URL 重写:

Options +FollowSymLinks

RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^publisher/([^/\.]+)/?$ /publisher.php?page=$1 [QSA]

我想通过 $_GET 从这个 URL 中获取参数:

https://website.com/publisher/2/

当我执行以下操作时...

$id = $_GET["page"];

echo "ID:". $id;

...我的结果是空的,没有输出

我尝试了以下步骤,其他社区成员已经推荐:

Getting mod_rewrite to pass $_GET params?

为什么我不能在这里上车?提前致谢。

更新:添加后

Options -MultiViews

它工作正常,但现在我有另一个问题:每次我通过链接转到另一个页面时,我都会得到 300:多个选项。 https://website.com/test/ --> 300: /test.php/

【问题讨论】:

  • 所以为了清楚起见,您实际上试图禁用 MultiViews,是吗? 向我们展示您到底尝试了什么,不要参考其他问题,只给我们一个“尝试了一切,没有任何效果”——这对于问题描述没有帮助。
  • 好的。我的错。我没有将Options -MultiViews 放在顶部。就在其他选项之后。

标签: php .htaccess mod-rewrite parameters url-rewriting


【解决方案1】:

问题解决了:

把它放在你的第一行和其他选项之前:

Options -MultiViews

【讨论】:

    【解决方案2】:

    此重写条件仅更改 url 而不是数据。删除 ?php=$1 因为这只是 url 而不是真正的获取数据。

    【讨论】:

    • 还是不行。如果可能的话,我想保留那个干净的 URL。我只是无法获取参数:(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-30
    • 2015-02-25
    • 2015-11-01
    • 2016-02-27
    • 2011-01-06
    相关资源
    最近更新 更多