簡體   English   中英

.htaccess僅針對資源重定向

[英].htaccess redirect only for resources

我正在嘗試一種解決方案,例如:

/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;

先感謝您!

使用以下方法更改代碼:

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]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM