0

我正在尝试一种解决方案来获得类似的东西:

/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 不是很熟练)

另外,我不能/dev/base/在 htaccess 文件中静态指定路径,它应该“自动”解决,因为它可以根据工作站进行更改。

所以我需要一些在伪 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;

先感谢您!

4

1 回答 1

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]
于 2013-03-26T14:18:46.090 回答