以下重写重定向http://example.com/
到http://example.com/www/www.example.com/public_html
而不是http://www.example.com/
。/www/www.example.com/public_html
是DocumentRoot
。
# Rewrite Rules for Example
RewriteEngine On
RewriteBase /
# Redirect from example.com to www.example.com
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
此重定向位于<VirtualHost *:80>
使用以下设置:
ServerName example.com
ServerAlias www.example.com
ServerAdmin [email protected]
Options +FollowSymLinks
DocumentRoot /www/www.example.com/public_html
and the rewrite is inside <Directory />
你知道为什么会这样吗?我研究了Apache 手册它说使用${HTTP_HOST}
在你的RewriteCond
将主机添加到RewriteRule
而不仅仅是URL 路径。嗯,这是非常常见的重写,我以前从未见过这种情况。
答案1
问题是<Directory />
。一旦我将其更新为,<Directory /www/www.example.com/public_html>
它就可以正常工作。