你有幾個方法可以做到這一點,我會說,你當前的PHP的最簡單的方法是改變你的鏈接是這樣的:
http://example.com/items/id-itemsname
http://example.com/id-username
因此,一個真實的例子是這樣的:
http://example.com/items/192-Wash-Machine
http://example.com/feedback/146-Jon-Lin
然後你就可以很容易地使用這個規則把它轉換:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^items/([0-9]+)-.*$ /item.php?act=view&id=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^feedback/([0-9]+)-.*$ /feedback.php?id=$1 [L]
通過這種方式,您可以完全忽略標題並僅從其中獲取標識並使用當前腳本,同時仍向用戶顯示標題。
另一種方式是像你提到的,它應該是這樣的:
http://example.com/items/itemsname
http://example.com/feedback/username
你會那麼需要改變你的PHP按名稱查找反饋和物品,使他們看起來像這樣:
http://example.com/item.php?act=view&name=Wash Machine
http://example.com/feedback.php?username=Jon Lin
而且規則是這樣的:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^items/([^/]+)/?$ /item.php?act=view&name=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^feedback/([^/]+)/?$ /feedback.php?username=$1 [L]
的RewriteCond需要在電子是重寫規則我想每個條件的最後,非常感謝您的詳細回答! – Athanatos
@Athanatos這是我的壞,這是一個錯字,感謝您發現;) – Prix