我正在從數據庫中檢索菜單,其中一些有一個撇號 - ' - 在他們的名字。 在我的代碼的一部分,我必須將數據庫中的名稱與url進行比較,但當url有撇號時會失敗。如何在htaccess RewriteRule正則表達式中允許撇號?
例如:
當我從數據庫獲取的名字,我得到它,因爲它是:foo's
但是從網址,即使網址是web.com?menu=foo's
當我這樣做:
$menu = urldecode($_GET['menu']);
我只得到foo
這是我的htaccess重寫
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule^- [L]
RewriteRule ^explore/([0-9a-zA-Z\ ]+) renderpage.php?menu=$1 [L]
我試着在我的PHP所有可能的組合,這並不是說,正是這種重寫規則不允許撇號,我還在我的正則表達式和([0-9a-zA-Z\ \']+)
但無濟於事試圖([0-9a-zA-Z\ ']+)
。
你只是嘗試這個表達式'重寫規則^探索/([^ /] +)' –
對不起,我睡着了,這正則表明我喜歡這個foo的 – Cr1xus
,但它很好,我會做一個str_replace,它已經足夠好了 – Cr1xus