我在文件根目录/var/www/html
有一个子目录abc
我希望能够通过在浏览器中input在子目录中运行任何文件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
,我需要能够通过本地访问。
在为域名声明Vhost时,您需要添加:
<VirtualHost *:80> DocumentRoot /var/www/html/abc <Directory /> *your options* </Directory> </VirtualHost>
现在你的/
将是/var/www/html/abc
如果你的文档结构是这样的:
/ -abc -edf
您现在将默认访问abc文件夹。 如果你还想访问edf文件夹,你有两个select:
Symlinking非常简单(ln命令)。 要创build另一个虚拟主机,你可以在你的sites-available/
文件夹中创build一个新文件,或者在sites-available/default
的底部添加这些条目sites-available/default
DocumentRoot / var / www / html / efg ServerName efg.mydomain.com
如果你创build了一个新文件,你需要运行:
a2ensite filename
并重新启动Apache。 现在,当你访问子域名(不要忘记把它添加到你的DNS服务器)。 它将使用efg作为文档。
更改DocumentRoot
/var/www/html
至
/var/www/html/abc
你可以改变指令
DocumentRoot /var/www/html
成为
DocumentRoot /var/www/html/abc
在相应的虚拟主机中。
另一个select是使用mod-rewrite来重写每个以/abc
开头的path。