2013-05-16 48 views
4

我的.htaccess:的.htaccess大小寫敏感的,mod_rewrite的

RewriteEngine On 
CheckCaseOnly On 
CheckSpelling On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule ^Blog/(.*?)$ /Me/profile.php?username=$1 [QSA,L] 

的問題是,當URL是這樣的,它的工作原理:

localhost/Me/Blog/ExampleUser 

但是,當它是它不工作像這樣(注意'博客'中的'b'是小寫的?):

localhost/Me/blog/ExampleUser 

我在新版本的XAMPP上運行它。儘管我在PHP配置中使用了mod_speling.so,但它並不工作。

什麼問題?

回答

13

使用[NC]標誌會導致RewriteRule以不區分大小寫的方式進行匹配。也就是說,它不關心在匹配的URI中字母是大寫還是小寫。

嘗試[QSA,L,NC]代替,因此在進行比較in a case-insensitive manner

+0

你是了不起的!謝謝您的幫助! :) – Cole

0

問題是重寫規則區分大小寫。所以你的重寫規則應該是:

RewriteRule ^[Bb]log/(.*?)$ /Me/profile.php?username=$1 [QSA,L] 

和瞧,你是固定的。

mod_speling.so與此無關。