2011-02-03 68 views
1

我有一個重寫domain.co.uk/member.php?x=$member到domain.co.uk/$member的.htaccess重寫規則不會允許「,並@

它看起來重寫規則像這樣:

RewriteEngine On 
RewriteRule ^([a-zA-Z0-9_-]+)$ member.php?x=$1 
RewriteRule ^([a-zA-Z0-9_-]+)/$ member.php?x=$1 

我一直在努力,只是添加「和@於方括號但後來我得到一個500內部服務器錯誤。我需要這些字符爲人民用戶名

我該怎麼做?

+1

題外話:添加``將使尾隨`/`可選,而無需編寫兩條線:`^([A- ZA-Z0-9 _-] +)/ $` – jensgram 2011-02-03 12:05:31

回答

1

@用於在一個URI字符串這樣來指定用戶名和密碼:

http://user:[email protected]/path

您需要進行urlencode它:%40

你的路徑將是:/user%40foo.com或像這樣

這應該工作

1

RFC 1738

字符 「;」 ,「/」,「?」,「:」, 「@」,「=」和「&」是字符 ,它可以保留用於特殊的 ,意思是在一個方案內。在 方案內不能保留其他 字符。

和:

因此,只有字母數字,特殊字符 「!$ -_ + *」()「,並
用於其 保留目的的保留字符可以是在URL中使用未編碼的

你應該做的:

  • 編碼 '@' 到%40
  • 逃逸單引號像在.htaccess像這樣:\'