2011-07-12 104 views
4

我試圖使用此.htaccess更改RewriteBase如果位置是本地服務器或活動服務器。HTAccess LocationMatch服務器錯誤

Options +FollowSymlinks 
RewriteEngine on 

<LocationMatch "^/(bbtsrv02)/$"> 
    #RewriteBase /beta/admin/ 
</LocationMatch> 

RewriteCond %{REQUEST_URI} !index.php$ 
RewriteCond %{REQUEST_URI} !css/(.*)\. 
RewriteCond %{REQUEST_URI} !img/(.*)\. 
RewriteCond %{REQUEST_URI} !incs/(.*)\. 
RewriteCond %{REQUEST_URI} !js/(.*)\. 
RewriteCond %{REQUEST_URI} !upload/(.*)\. 
RewriteCond %{REQUEST_URI} !widget/(.*)\. 
RewriteRule ^(.*) index.php?_pd=$1 [NC,L] 

只要我刪除LocationMatch整件事再次開始工作。我只需要更改RewriteBase進行實時測試。

回答

7

<LocationMatch>指令不能在.htaccess文件中使用 - 僅在服務器配置或虛擬主機上下文中使用。

http://httpd.apache.org/docs/current/mod/core.html#locationmatch

+0

Durrr。你知道我甚至讀過這些,並告訴自己要記住這一點。感謝您再次指出! – James

+0

@James你如何訪問你的本地服務器?我想通過子文件夾。如果是這樣 - 爲什麼不假冒DNS名稱(通過'hosts'文件)並通過域名訪問(例如'http:// mysite.dev /')..所以URL結構與在線服務器上的相同? – LazyOne

+0

我們在本地服務器機器上開發,我們都是單獨連接的。我想過設置'hosts'文件,但是當我們真正想要上線時,這是一件很痛苦的事情。 – James