这里的 Apache(主要是)菜鸟...肯定可以对我尝试使用RewriteRule
in进行的操作提供一些帮助.htaccess
:...导致使用我们的sharpedge.
子域的 URL 从目录中自动加载Internet_IE
- 比站点根目录更深一层.
我有这个httpd.conf
:
[snip]
NameVirtualHost 11.22.33.44
<VirtualHost 11.22.33.44>
Options All +ExecCGI
ServerAdmin hostmaster@ourhost.com
DocumentRoot /var/www/html/ourdomain.com
ServerName ourdomain.com
ServerAlias www.ourdomain.com
DirectoryIndex index.htm index.html index.dna
#---------------------------------
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
</IfModule>
#---------------------------------
</VirtualHost>
<VirtualHost 11.22.33.44>
Options All +ExecCGI
ServerAdmin hostmaster@ourhost.com
DocumentRoot /var/www/html/ourdomain.com
ServerName sharpedge.ourdomain.com
DirectoryIndex index.htm index.html index.dna
#---------------------------------
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
</IfModule>
#---------------------------------
</VirtualHost>
[snip]
...这在 .htaccess 中(在站点根目录中,这里:/var/www/html/ourdomain.com/)
Options -Indexes
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^sharpedge\.ourdomain\.com$
# years ago this next line was used here, but in httpd.conf: (I don't know what it was supposed to do)
# RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule ^sharpedge\.ourdomain\.com(.*) /var/www/html/ourdomain.com/Internet_IE/$1 [L]
</IfModule>
..但是 RewriteRule 没有任何反应;就好像 RewriteRule 不存在一样。
我非常感谢任何建议。
编辑:
- 我只需将 DocumentRoot 更改为我实际想要服务的目录,但我需要能够从该目录中的文件中调用(包含)文件
/
,其中包含路径中的前缀,这些文件位于站点根目录中. 这些文件也同样从站点根目录中的其他文件中调用。