2017-10-07 64 views
0

我試圖讓我的URL看起來像改寫時檢索標識,並分別網址:通過ID和乾淨的URL

mysite.com/news/25-my-first-article

我有這在我的.htaccess:

RewriteRule ^news/([a-zA-Z-0-9-]+)$ article-detail.php?id=$1&slug=$2 [NC,L] 

和我的href:

<li><a href="news/{$id}-{$slug}">{$title} <i class="icon arrow_right"></i></a></li> 

這正常工作,據我所看到的。如果我點擊一個鏈接,該網址看起來如何我想要它。我遇到的問題是我無法將id和slug分爲不同的值。

如果我附和了:

<?php echo $_GET['id']; ?> 

然後,而不是僅僅獲得一個ID,如 「7」 或 「25」 或什麼,我得到25-我先文章

我只是想實際的id值,以便我可以在數據庫中查找它。

回答

1

您需要兩個值捕捉到不同的組:

RewriteRule ^news/([0-9]+)-([a-zA-Z-0-9-]+)$ article-detail.php?id=$1&slug=$2 [NC,L] 

或者,你可以忽略的第二部分:

RewriteRule ^news/([0-9]+)-[a-zA-Z-0-9-]+$ article-detail.php?id=$1 [NC,L] 

不過,我會用(這需要所有的數字在前面並忽略其餘部分):

RewriteRule ^news/([0-9]+).*$ article-detail.php?id=$1 [NC,L] 
+0

工作,謝謝! – user8463989

+0

@ user8463989如果是這樣,請考慮提供答案並/或將其標記爲已接受。另外,請確保查看添加的示例。 – NieDzejkob

-1

使用後續代碼

<?php $data=$_GET['id'];$temp=explode("-",$data);echo $temp[0];// you get Id ?>

+0

此代碼格式嚴重,解決問題而不是解決問題。 -1。 – NieDzejkob