最近我用mod_rewrite解决了我的问题,将域重定向到子文件夹。现在我已经解决了原来的问题,我已经打了另一面墙。
以下是一个示例结构:
/
/index.php
/content/
/content/styles.css
/domain/
/domain/index.php
为简单起见,/domain/
是当前和最顶层的文件夹。 在/domain/index.php
我正在尝试访问/content/styles.css
。我该如何实现?假设没有前面目录的web链接。另外,../
不起作用,因为../
返回与./
相同的目录。
我想到了一种方式,但我的.htaccess技能不是很强,而且我不想花费数小时或数天来拼凑答案。假设我有:
<link rel="stylesheet" type="text/css" href="content/styles.css" />
如果我是对的,href
会执行该文件的请求。如何使用.htaccess捕获请求并将其指向正确的文件夹?就像查询字符串看起来像^/content/(.*)$
一样,并将其重写回一个目录以访问../content
。
希望这有点意义。
答案 0 :(得分:3)
您可以使用别名:
<VirtualHost *:80>
DocumentRoot "/domain"
Alias /content "/content"
</VirtualHost>
答案 1 :(得分:2)
您可以使用另一个.htaccess文件创建一个虚拟/domain/content
目录,该文件类似于
RewriteRule ^([^/]+)$ /content/$1 [NC,L]
答案 2 :(得分:1)
如果/content/
不在/domain/
内且/domain/
是您网络服务器上的DOCUMENT_ROOT
,那么您根本无法访问/content/
文件夹一个<link>
代码&amp; mod_rewrite的。
您可以通过PHP访问它并包含它的内容,但这是一个不同的故事。
答案 3 :(得分:0)
我考虑过了;
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
存在于您的.htaccess
文件中。
你为什么不这样做?
$dir = dirname(__FILE__);
$link = $_SERVER['HTTP_HOST'];
// $link = preg_replace('/^www\./i', '', $link);
for hrefs;
href="<?php echo $link . '/content/content.css'; ?>"
用于进口;
include($dir . '/example.php');