abc
我在文档根目录中有一个子目录/var/www/html
我希望能够any_file.html
通过在浏览器中输入以下内容来运行子目录内的任何文件:
localhost/any_file
代替localhost/abc/any_file.html
或
my_domain.com/any_file
代替my_domain.com/abc/any_file.html
我尝试写入httpd.conf
:
<Directory "/var/www/html/abc">
RewriteEngine On
RewriteBase /
RewriteRule %{REQUEST_FILENAME} %{REQUEST_FILENAME}\.html
</Directory>
但它不起作用。Options FollowSymLinks
已激活,<Directory>
所以我相信我不需要再写一遍。有人知道为什么以及如何解决吗?谢谢。
更新:我有另一个子目录efg
,需要能够通过本地主机访问。
答案1
在为域声明 Vhost 时,需要添加:
<VirtualHost *:80>
DocumentRoot /var/www/html/abc
<Directory />
*your options*
</Directory>
</VirtualHost>
现在你的/
意愿是/var/www/html/abc
如果你的文档结构如下:
/
-abc
-edf
现在您将默认访问 abc 文件夹。如果您还想访问 edf 文件夹,则有两个选择:
- 为 documentroot 为 edf 的子域创建另一个虚拟主机
- 将 edf 文件夹符号链接到 abc
符号链接非常简单(ln 命令)。要创建另一个虚拟主机,您可以在文件sites-available/
夹中创建一个新文件,或者在文件底部添加这些条目sites-available/default
DocumentRoot /var/www/html/efg 服务器名称 efg.mydomain.com
如果你创建了一个新文件,则需要运行:
a2ensite filename
然后重启 apache。现在当您访问子域时(不要忘记将其添加到您的 dns 服务器)。它将使用 efg 作为其 documentroot。
答案2
答案3
您可以更改指令
DocumentRoot /var/www/html
成为
DocumentRoot /var/www/html/abc
在相应的虚拟主机中。
另一种选择是使用 mod-rewrite 重写每个以 开头的路径,/abc
使其不以 开头。