Apache-2.2

mod_rewrite 將 documentroot 添加到 url

  • August 24, 2018

以下重寫重定向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 webmaster@example.com

Options +FollowSymLinks
DocumentRoot /www/www.example.com/public_html

and the rewrite is inside <Directory />

任何想法為什麼會這樣做?我查看了Apache 手冊,它說${HTTP_HOST}在您的使用RewriteCond中將主機添加到RewriteRule而不只是URL-Path。嗯,這是一個非常常見的重寫,我以前從未見過這種情況。

問題是<Directory />。一旦我將其更新為<Directory /www/www.example.com/public_html>它工作得很好。

引用自:https://serverfault.com/questions/93195