gpt4 book ai didi

apache - 在 PHP 中从 .htaccess 重写 URL 获取查询字符串参数

转载 作者:行者123 更新时间:2023-12-05 03:35:29 26 4
gpt4 key购买 nike

在我的网站中,我试图重写我的一些 URL,如下所示:

这个网址

http://example.com/news.php?newstype=newsletter&newsid=1123&newstitle=my news title

转换为:

http://example.com/newsletter/1123/my news title

我在 .htaccess 中的重写规则看起来如下所示:

RewriteEngine On
Options +FollowSymlinks
RewriteBase /

RewriteRule ^(.*)/(.*)/(.*)/?$ news.php?newstype=$1&newsid=$2&newstitle=$3 [L,QSA,NC,B]

我的 <a>标签看起来是这样的:

$seoUrl = "$urlNewsType/$newsid/$urlNewsTitle/";
$seoUrl = urldecode($seoUrl);
$seoUrl = html_escape($seoUrl, 'UTF-8');

<a href="$seoUrl">Read More</a>

这些都对我有用。但我的问题是,我需要将这些查询字符串参数与 URL 分开获取到 PHP 中。问题是我无法像往常一样获取这些参数。

在 php 中,这是输出: echo '<pre>',print_r($_GET).'</pre>';

Array
(
[newstype] => news/1114
[newsid] => Presentation: Heath+Day+in+2018
[newstitle] =>
)

谁能告诉我,我在这方面做错了什么?

最佳答案

正则表达式模式 (.*) 是贪婪的。它匹配完整的请求路径。试试 ([^/]+) :

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ news.php?newstype=$1&newsid=$2&newstitle=$3 [L,QSA,NC,B]

关于apache - 在 PHP 中从 .htaccess 重写 URL 获取查询字符串参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69852599/

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