2016-11-10 96 views
0

我是新的論壇,所以我需要幫助。我的工作在我的網站使用PHP/MySQL和我的.htaccess堆棧乾淨的URL與htaccess

因此,有我的代碼

<a href="namebook-'.$row['book_name'].'" class="btnmore">Review</a> 

而且有我的htaccess,

RewriteEngine on 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 

RewriteRule ^book/namebook-([a-zA-Z0-9.\/\-\?\&]+)\.php$ book/namebook.php?name=$1 

,及代碼我得到URL是這樣的: mywebsite.com/book/namebook-book1

所以我希望得到乾淨的URL是這樣的:mywebsite /書/ book1的

回答

0

聽起來像你只需要從URL的第一部分刪除namebook

即改變這一點:

<a href="namebook-'.$row['book_name'].'" class="btnmore">Review</a> 

這樣:

<a href="'.$row['book_name'].'" class="btnmore">Review</a> 
+0

我刪除它,但後來我的PHP這麼想的從數據庫中識別「BOOK_NAME」,我也從htaccess的刪除。 我有 RewriteRule^book /([a-zA-Z0-9。\/\ - \?\&] +)\。與其他一些文本的工作,但是當我刪除它不工作,然後 – vatra

0

這裏的關鍵是你最後一次重寫規則:

RewriteRule ^book/namebook-([a-zA-Z0-9.\/\-\?\&]+)\.php$ book/namebook.php?name=$1 

你重寫規則正在發送您的請求值(任何匹配[a-zA-Z0-9.\/\-\?\&]+)到您的PHP腳本,但只有當您的URL匹配book/namebook-<variable> - 例如mywebsite/book/namebook-book1

爲了讓您mywebsite/book/book1需要從重寫規則開始刪除namebook-

RewriteEngine on 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 

RewriteRule ^book/([a-zA-Z0-9.\/\-\?\&]+)\.php$ book/namebook.php?name=$1 
+0

雖然這段代碼可以解決問題,但它不能解釋爲什麼或如何回答這個問題。請[請提供您的代碼解釋](// meta.stackexchange.com/q/114762/269535),因爲這確實有助於提高帖子的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。 **舉報人/評論者:** [僅用於代碼解答,如downvote,請勿刪除!](// meta.stackoverflow.com/a/260413/2747593) –

+0

對不起Scott,我在我的手機,並會在明天更新並解釋。抱歉! – Kinnectus