2012-01-22 133 views
0

我在我的.htaccess文件中使用以下幾行重定向從每個/something/#!/something url。所以我重定向到一個散列,所以我可以用javascript來捕捉它。這很好的工作...ModRewrite重定向異常?

RewriteEngine on 
# not existing file (images, css, etc) 
RewriteCond %{REQUEST_FILENAME} !-f 
# no query parameters 
RewriteCond %{QUERY_STRING} ="" 
# not/
RewriteCond %{REQUEST_URI} !^/$ 
# R=redirect, NE=dont escape #, L=last rule 
RewriteRule ^(.*)$ /#!/$1 [R,NE,L] 
# same but with query parameter 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !^/$ 
RewriteRule ^(.*)$ /?%{QUERY_STRING}#!/$1 [R,NE,L] 

有沒有辦法有一個例外。例如。當我輸入www.test.com/stats我不希望發生這種情況!

RewriteCond %{REQUEST_URI} !^/stats 

以及任何其他的URI你不想重定向:

回答

4

就在所有的規則面前你想要的例外添加此。你可以將它們全部包含在同一個正則表達式中:

RewriteCond %{REQUEST_URI} !^/(stats|something|example|test) 
+0

謝謝,但我究竟在哪裏放這條線?你上面說過我想要例外的每條規則。由於我已經獲得了我的modrewrite的第一行幫助,我需要更多的細節放在這裏。 – matt

+1

@Matt將它添加到包含'RewriteRule ...'的兩行上面# – Gerben

+0

謝謝,完美! – matt