mod_rewrite 将 documentroot 添加到 url

mod_rewrite 将 documentroot 添加到 url

以下重写重定向http://example.com/http://example.com/www/www.example.com/public_html而不是http://www.example.com//www/www.example.com/public_htmlDocumentRoot

# 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>它就可以正常工作。

相关内容