[英]Clean URL with htaccess
我是這個論壇的新手,所以我需要幫助。 我正在使用PHP / MySQL創建網站,並使用.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 / book / book1
聽起來您只需要從URL的第一部分中刪除namebook
?
即更改此:
<a href="namebook-'.$row['book_name'].'" class="btnmore">Review</a>
對此:
<a href="'.$row['book_name'].'" class="btnmore">Review</a>
關鍵是您的最后重寫規則:
RewriteRule ^book/namebook-([a-zA-Z0-9.\/\-\?\&]+)\.php$ book/namebook.php?name=$1
您的重寫規則會將您請求的值(與[a-zA-Z0-9.\\/\\-\\?\\&]+
匹配的任何值)發送到PHP腳本,但book/namebook-<variable>
是您的URL與book/namebook-<variable>
匹配-例如mywebsite/book/namebook-book1
。
要允許mywebsite/book/book1
namebook-
,您需要從重寫規則的開頭刪除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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.