gpt4 book ai didi

html - 使用 GET 表单获取漂亮的 URL

转载 作者:行者123 更新时间:2023-11-28 01:00:11 25 4
gpt4 key购买 nike

我正在尝试制作动态/漂亮的网址,例如 domain.com/p/term

在我的例子中,/p 实际上是一个 PHP 脚本,通过 .htaccess 条目。

<Files "p">
ForceType application/x-httpd-php
</Files>

term是一个搜索词,用于从数据库中获取相关数据

因此,如果在 URL 中提供了“/term”部分,一切都很好。问题是,如果请求只是没有术语的“domain.com/p/”,我需要显示一个要求术语的表单,因为我希望观众输入的术语显示在 URL 中,我想我应该使用 GET 表单。 super 基本.. 似乎是这样:/

<form action="/p/" method="GET">
<input type="text" name=pid>
<input type="submit">
</form>

提交后,URL 为 domain.com/p/?pid=term

现在,我只需要找到如何将其重写为 domain.com/p/term

我已经尝试了无数次重写规则,但无法获得想要的结果...我最近的尝试...

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

#Rewrite GET search "/p?pid=term" => "/p/term"
RewriteRule ^p\?pid=(.*)$ /p/$1 [L]

#Rewrite GET search "/p/?pid=term" => "/p/term"
RewriteRule ^p/\?pid=(.*)$ /p/$1 [L]

似乎都没有触发重写,我仍然在地址栏中看到/p/?pid=term。

我查看了几个相关问题,但似乎没有一个解决这种情况。用线索棒点击一下将不胜感激。

最佳答案

您不能使用 RewriteRule 匹配 QueryString(? 之后的 Url 部分)。您需要匹配 %{QUERY_STRING} 变量

RewriteEngine on


RewriteCond %{QUERY_STRING} ^pid=(.+)$
RewriteRule ^p/?$ /p/%1? [L,R]

关于html - 使用 GET 表单获取漂亮的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42516130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com