我正在尝试将所有http请求转到与DocumentRoot指向的位置不同的本地目录:
网络服务器配置:
<VirtualHost 1.2.3.4:80>
DocumentRoot /local/home/me/example.com
ServerName example.com
但是,此站点的整个(PHP)代码不在DocumentRoot中,而是在子目录中:
/local/home/me/example.com/code/
目前,要访问该网站,我必须使用包含/code/
子网址的网址。我想摆脱它,以便http://example.com/
访问/local/home/me/example.com/code/
我知道正确的方法是让DocumentRoot指向subdir。我的网站托管服务商不会让我更改此设置(事实上,这就是我以前的方式,当我在我的私人网络服务器上托管这个网站时,我可以像这样设置DocumentRoot。)
我现在希望我可以通过重写.htaccess文件完成此操作。我只是不明白如何。
我的问题,特别是:
/code/
内有子目录 - 他们每个都需要一个.htaccess文件吗?答案 0 :(得分:1)
您可以在/local/home/me/example.com/.htaccess
文件中使用此代码:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^((?!code/).*)$ code/$1 [L,NC]
(?!code/)
是否定前瞻,会检查请求是否已经不以/code/
开头,如果条件为真,则会添加此内容。