【问题标题】:Automatically Rewrite URL for Dynamic content in URL : PHP自动重写 URL 中动态内容的 URL:PHP
【发布时间】:2019-05-02 06:02:07
【问题描述】:

我正在尝试根据他们的电子邮件 ID 获取用户详细信息,因此,当使用 GET 时

我的网址如下所示:

http://localhost/test/profile.php?uid=test@example.com

有没有什么方法可以让我在发送 Get Request 时,我的 URL 会自动变成这样。

http://localhost/test/profile/test@example.com

注意:如果我们获取不同的电子邮件,uid 值会发生变化

【问题讨论】:

  • 首先在 URL 中传递 email_id 不是不安全代码的更好做法,而不是 email_id 使用 slug 之类的东西
  • 传递电子邮件 ID 不是我的选择。我被要求这样做。
  • 不起作用 --> 添加更多详细信息,例如:错误消息
  • 没有错误。 .htaccess 代码不起作用。 URL 是一样的。 @Wollmich

标签: php .htaccess url


【解决方案1】:

没有自动的方法,重写规则也无济于事:它们有助于将传入的 URL(来自浏览器)映射到应用程序所需的正确 URL。

但您正在寻找另一种方法:生成应显示在浏览器 URL 栏中的正确 URL。这需要在您的应用程序中手动完成 - 当您没有显示代码时,如何做到这一点是无法解释的。一个非常通用的方法如下所示:

<form action="test/profile/<?php echo $email; ?>">

【讨论】:

    【解决方案2】:

    试试这个:

    RewriteEngine on
    RewriteRule ^test/profile/(.*)$ /test/profile?uid=$1
    

    【讨论】:

    • 我在 .htaccess 文件中添加了上面的代码,但它对 URL 没有任何影响
    • 我在我的网站上对其进行了测试,并且可以正常工作。也许你误解了它是如何工作的,它只是调用另一个文件,浏览器中的 url 保持不变。所以如果你调用 ceph/profile/pizza 文件 /ceph/profile.php 会被调用 uid: Pizza
    • 有什么方法可以自动加载这种格式的 URL。发送 GET 请求后。
    • “网址自动以这种格式加载”是什么意思?
    • 我想说的是。当我发出 get 请求时,Next Page URL 不应该是这样的。 http://localhost/test/profile.php?uid=test@example.com。相反,它应该自动看起来像这样http://localhost/test/profile/test@example.com
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多