在我的網站中,我試圖將我的一些 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] =>
)
誰能告訴我,我在這方面做錯了什么?
uj5u.com熱心網友回復:
正則運算式模式(.*)是貪婪的。它匹配完整的請求路徑。試試吧([^/] ):
RewriteRule ^([^/] )/([^/] )/([^/] )/?$ news.php?newstype=$1&newsid=$2&newstitle=$3 [L,QSA,NC,B]
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/350135.html
標籤:阿帕奇 .htaccess 改写 url重写 请求参数
