簡體   English   中英

使用htaccess清理URL

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM