2016-05-22 77 views
1

我在我的網站中創建友好鏈接,但我遇到了問題。我寫了這一點,但只有第一行代碼的工作,並I'n不知道爲什麼:.htaccess RewriteEngine不能用於輔助GET

RewriteRule ^user/([0-9a-zA-Z]+) user.php?user=$1 [NC,L] 
RewriteRule ^user/([0-9a-zA-Z]+)/options user.php?user=$1&options [NC,L] 

當我去test.com/user/tom一切都很好,但是當我嘗試test.com/user/tom/options它只是洛達在同一頁。

我有PHP腳本,應該加載不同的頁面,不同$_GET,它的工作,如果使用正常的鏈接。

+0

因爲趕上第一排...... 如果你可以改變第二行^用戶到另一個名稱... –

+0

我不知道它的工作這樣!謝謝,只是交換行:) – newacccccc

+0

歡迎您;) –

回答

0

要做的正確的事情是而不是換行。雖然這可能會解決您的問題,但它也會將user/tom/foo/bar發送到第一條規則。這樣做的原因是因爲該模式未被$關閉。因此,您的規則應該如下:

RewriteRule ^user/([0-9a-zA-Z]+)$ user.php?user=$1 [NC,L] 
RewriteRule ^user/([0-9a-zA-Z]+)/options$ user.php?user=$1&options [NC,L] 

提示:如果你也有用戶的其他頁面,則可以簡化第二條規則被捕獲的手段,包括不同的細分:

RewriteRule ^user/([0-9a-zA-Z]+)/(options|other-page)$ user.php?user=$1&$2 [NC,L] 

還正在考慮這樣的事實,您使用的是NC(任何情況下)標誌,你可以將你的拍攝組A-Z。您也可以使用\d作爲數字。例如[a-z\d]+