2014-01-17 56 views
0

我試圖實現以下的Apache URL重寫:子站點

subdomain.domain.com/some/path作出的HTTP請求應該重寫domain.com/subdomain/api.php?__route__=some/path

這是Epiphany庫正常運行並正確處理RESTful API調用的要求。我的網站目前託管在GoDaddy上,並且我使用GoDaddy網頁界面將subdomain.domain.com設置爲domain.com/subdomain。我已經把下面的文字.htaccess文件中的子域目錄下:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)\?*$ api.php?__route__=/$1 [L,QSA] 

我得到的標準500內部服務器錯誤時,我儘量讓REST風格的API任何調用。

不幸的是,我必須等幾個小時才能讓GoDaddy訪問任何Apache日誌文件。任何想法爲什麼這不起作用?

EDIT

爲了澄清,我想以下重寫來發生:

internal.ledworld-me.com/some/path =>ledworld-me.com/internal/api.php?__route__=/some/path

現在,GoDaddy的被用於映射internal.ledworld-me.comledworld-me.com/internal。我開始認爲我應該從GoDaddy方面刪除映射,並完全依靠mod_rewrite來實現此目的。

回答

0

將這個代碼在你DOCUMENT_ROOT/internal/.htaccess文件:

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/?$ api.php?__route__=/$1 [L,QSA] 
+0

現在,我得到「的請求的URL'/子/一些/ path'在此服務器上找到」。看來URL重寫沒有發生。爲了澄清事情並使問題變得不那麼通用,域名爲ledworld-me.com,子域名爲internal.ledworld-me.com。所以我想要的是,當對internal.ledworld-me.com/path提出請求時,它應該被重寫爲ledworld-me.com/internal/api.php?__route__=/path。另請注意,子域名internal.ledworld-me.com到ledworld-me.com/internal的映射已經通過GoDaddy網頁界面進行設置。 – faridghar

+0

你能否讓兩個域共享相同的'DocumentRoot'? – anubhava

+0

是的,internal.ledworld-me.com映射到ledworld-me.com/internal(通過GoDaddy),因此它們共享相同的DocumentRoot。 – faridghar