2013-03-26 29 views
0

我試圖解決有類似的東西:只的.htaccess重定向資源

/dev/base/route.php -> include "/dev/base/mysite/index.php" 

爲當然的PHP我使用這個系統已經沒有問題,所有的代碼工作正常,但對於HTML標籤(如<img,<link等..)我需要將請求重定向到./dev/base/mysite/目錄。

我試圖使用htaccess的(不改變地址欄),以解決它,使用此代碼:

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond /mysite/$0 -f 
RewriteCond /mysite/$0 -d 
RewriteRule ^$ /mysite/$0 [L] 

,但它不工作。 (我不熟悉mod_rewrite)

另外,我不能在htaccess文件中靜態指定/dev/base/路徑,它應該被「自動」解決,因爲它可以根據工作站進行更改。

,所以我需要的東西,在僞PHP代碼語法應類似於它:

if (file_exists(SITE_ROOT_DIR."/mysite/".$request) && !file_exists(SITE_ROOT_DIR."/".$request)) 
    $url=SITE_ROOT_DIR."/mysite/".$request; 
else 
    $url=SITE_ROOT_DIR."/".$request; 

預先感謝您!

回答

0

這一變化代碼:

RewriteBase /dev/base/ 

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d [OR] 
RewriteCond %{REQUEST_FILENAME} -l 
## don't do anything 
RewriteRule^- [L] 

RewriteCond %{DOCUMENT_ROOT}/dev/base/mysite/$1 -f [OR] 
RewriteCond %{DOCUMENT_ROOT}/dev/base/mysite/$1 -d [OR] 
RewriteCond %{DOCUMENT_ROOT}/dev/base/mysite/$1 -l 
RewriteRule ^(.*?)/?$ mysite/$1 [L] 
+0

而是%{DOCUMENT_ROOT}不含**的/ dev /路/ **太(這正是htaccess的所在),所以我需要手動添加它,相反,我會自動找出 – Joseph 2013-03-26 14:37:41

+0

請告訴我什麼是您的DOCUMENT_ROOT和這個.htaccess駐留在哪裏? – anubhava 2013-03-26 15:40:04

+0

我的文檔根目錄是home/workspace /,而我的.htaccess在/ home/workspace/dev/base /目錄下,我需要這個結構 – Joseph 2013-03-26 17:00:42