2013-05-16 49 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与此无关。