目前我正在開發一個與用戶交互的網站。我可以有以下命令的文件的.htaccess變換所有的用戶名的鏈接的個人資料頁:
RewriteEngine on
RewriteRule ^([a-zA-Z0-9_-]+)$ profile.php?u=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ profile.php?u=$1
如果我理解正確,該代碼用於替換後的參數中的「profile.php」信號「?」如果URL匹配正則表達式。但我不明白「u = $ 1」是如何實現的,因爲「u」不是一個可變會話。這是我在PHP配置會話變量:
$_SESSION["id"] = $id;
$_SESSION["username"] = $username;
$_SESSION["password"] = $pswd;
$_SESSION["email"] = $email;
我想包括在正則表達式太多的空間,因爲此刻唯一的用戶名,如「FirstUser」被接受,如「用戶第一」的用戶名在瀏覽器中給我一個錯誤。
當我加入,我得到以下HTTP 500錯誤模式的空間:
'u'是'$ _GET'變量。 'echo $ _GET ['u']' –
並獲得一個空格只需在模式中添加一個空格 – AbraCadaver
檢查第一個答案在這裏:http://stackoverflow.com/questions/18233615/space-in-rewritecond – Miro