2011-08-22 82 views
0

這個當前的系統需要允許在重寫條件內有選擇地使用句點(.)。請幫忙解決這個mod_rewrite問題

例如:應該工作,因爲我們允許用戶名中的句點。

但是,當我將.\\.[.]添加到以下重寫規則時,它會陷入無限循環,無法重新啓動apache2。令人驚訝的是,這種行爲已經改變,我不知道爲什麼。現在它只是將新字符串追加到現有的URL。

例如:將成爲/john.doe/?pg=user&username=john.doe

RewriteRule ^/([a-z0-9_]+)$ /?pg=user&username=$1 [NC,PT] 

我要瘋了試圖解決這一問題,請幫忙!

回答

0

這應該工作(我說「應該」,因爲我不知道你的整個系統是如何設置的,還有其他的重定向等等 - 我看到你正在使用PT標誌(也許你正在使用別名)):

RewriteCond %{REQUEST_URI} !^/index\.php 
RewriteRule ^([a-z0-9_\.]+)$ /index.php?pg=user&username=$1 [NC,QSA,L] 

OR

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([a-z0-9_\.]+)$ /index.php?pg=user&username=$1 [NC,QSA,L] 

我已經直接指定的腳本文件 - 這是更容易,如果你知道它是如何工作的背後寫的規則。