这是我的虚拟主机条目。
版本:Apache / 2.2.15(Unix)
<VirtualHost *:80>
ServerName web1.net
ServerAlias www.web1.net
ServerAdmin webmaster@web1.net
DirectoryIndex index.html index.php
LogLevel warn
ErrorLog /var/log/httpd/web1.net_error_log
CustomLog /var/log/httpd/web1.net_access_log combined
DocumentRoot /web/web1.net/htdocs
<Directory "/web/web1.net/htdocs">
Options Indexes FollowSymLinks Includes ExecCGI
Order allow,deny
Allow from all
AllowOverride All
RewriteEngine On #This is not working
</Directory>
</VirtualHost>
.htaccess文件
RewriteEngine on # It works.
#abc5
RewriteCond %{HTTP_HOST} ^example\.org$ [NC]
RewriteRule .* http://www.example.com
当我在.htaccess文件中放置相同的(RewriteEngine)它开始工作时,为什么我需要在虚拟主机中存在时将它放在.htaccess中。
我是否需要在Apache配置中进行任何其他更改?
答案 0 :(得分:0)
如果要启用重写,则需要在每个目录的.htaccess中使用RewriteEngine on
。简而言之:
RewriteEngine on
不会对DocumentRoot/.htaccess
RewriteEngine on
中的DocumentRoot/.htaccess
对任何/subdir/.htaccess