我有一个运行 3 个虚拟主机的 Apache 服务器:
<VirtualHost *:80>
DocumentRoot "/var/www/sub1"
ServerName sub1.domain.com
# Other directives here
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/var/www/sub2"
ServerName sub2.domain.com
# Other directives here
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/var/www/sub3"
ServerName sub3.domain.com
# Other directives here
</VirtualHost>
我想在sub3
上设置 URL 重定向,以便在请求sub3.domain.com/go/7dj29
时,它会重定向到sub3.domain.com/go/redirect.php?id=7dj29
.
我在/var/www/sub3
中创建了一个.htaccess
:
RewriteEngine On
RewriteRule ^/go/([a-zA-Z0-9]{5,})$ /go/redirect.php?id=$1 [QSA,L]
但是,我收到的是 404 而不是重定向;我做错了什么?
Not Found
The requested URL /go/7uja8 was not found on this server.
以下规则有效。
RewriteRule ^go/([a-zA-Z0-9]{5,})$ /go/redirect.php?id=$1
要使 apache 从.htaccess
加载规则,您至少需要AllowOverride FileInfo
,但您可以在没有它的情况下直接VirtualHost
上下文中设置它。