.htaccess只重定向资源

时间:2013-03-26 14:00:51

标签: php .htaccess mod-rewrite resources subdirectory

我正在尝试找到类似的解决方案:

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

对于php当然我使用这个系统没问题,所有代码都正常工作,但是对于html标签(例如<img<link等...)我需要重定向请求到./dev/base/mysite/目录。

我正在尝试使用htaccess(不更改url栏)来解决它,使用此代码:

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;

提前谢谢你!

1 个答案:

答案 0 :(得分: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]