2011-08-01 27 views
3

私はドメインに同じ404のErrorDocumentを使用しようとしているとそのすべてのサブドメインは、 サブドメイン全てがのApacheのErrorDocument絶対パス

ApacheのErrorDocumentディレクティブが期待するの/ var/www /のパスで、独自のディレクトリを持っています(カレントディレクトリからの相対)相対パスが、私はすべてのディレクトリ/サブドメイン

から/var/www/ErrorPages/404.htmlに行く にそれをしたいが、2010年に尋ねた同様の質問hereありますが、それはしません私はエイリアスを試してみましたが、私がしたいことをすることができませんでした。

例1: ファイルhttp://example.com/doesnotexist.txt

要求 - >表示/var/www/mervin/ErrorDocuments/404.html

応答として実施例2: - :

ファイル http://subdomain.example.com/otherimaginaryfile.txt

要求 を>を応答

バーチャルホストとして/var/www/ErrorPages/404.htmlを示し

<VirtualHost *:80> 
ServerName www.mervinkoops.net 
ServerAlias mervinkoops.net *.mervinkoops.net spirecoder.com www.spirecoder.com *.spirecoder.com 
DocumentRoot /var/www/mervin 
ErrorDocument 404 /ErrorDocuments/404.html 
Redirect 404 /favicon.ico 
RewriteEngine On 
RewriteCond %{HTTP_HOST} public\.mervinkoops\.net [NC] 
RewriteRule ^(.*)$ /public/$1 [L] 
RewriteCond %{HTTP_HOST} pma\.mervinkoops\.net [NC] 
RewriteRule ^(.*)$ /PHPMyAdmin/$1 [L] 
RewriteCond %{HTTP_HOST} www\.mervinkoops\.net [NC] 
RewriteRule ^(.*)$ /website/$1 [L] 
RewriteCond %{HTTP_HOST} mervinkoops\.net [NC] 
RewriteRule ^(.*)$ /website/$1 [L] 
RewriteCond %{HTTP_HOST} www\.spirecoder\.com [NC] 
RewriteRule ^(.*)$ /website/$1 [L] 
RewriteCond %{HTTP_HOST} spirecoder\.com [NC] 
RewriteRule ^(.*)$ /website/$1 [L] 
<Directory /var/www/mervin/> 
allow from all 
Options -Indexes 
RewriteBase/
</Directory> 
</VirtualHost> 

どうすればいいですか?

その他の情報:Apache2.2、MOD_ALIAS作業、MOD_REWRITEの作業は、シンボリックリンクが

答えて

8

Iセットアップに私のdevのボックスのいずれかのテスト構成を可能に - 私はあなたから欠落気づく主なものは、あなたのためのディレクトリの宣言でありますエラー文書!

これは私のセットアップのために動作します:私は感じているものの

<VirtualHost *:80> 

     ServerName stackexchange.nexus.local 
     ServerAlias serverfault.nexus.local 

     DocumentRoot /Data/vhome/stackexchange.nexus.local/httpdocs 

     HostnameLookups Off 
     UseCanonicalName Off 
     ServerSignature On 

     ErrorLog /var/log/apache2/error_log 
     CustomLog /var/log/apache2/access_log combined 


     Alias "/ErrorPages" "/Data/vhome/stackexchange.nexus.local/ErrorPages/" 
     ErrorDocument 400 /ErrorPages/bad_request.html 
     ErrorDocument 401 /ErrorPages/bad_request.html 
     ErrorDocument 403 /ErrorPages/bad_request.html 
     ErrorDocument 404 /ErrorPages/bad_request.html 


     <Directory /Data/vhome/stackexchange.nexus.local/httpdocs/> 
       AllowOverride All 
       Options +ExecCGI -Includes 
       Order allow,deny 
       Allow from all 
       RewriteBase/
     </Directory> 


     <Directory /Data/vhome/stackexchange.nexus.local/ErrorPages/> 
       AllowOverride All 
       Options +ExecCGI -Includes 
       Order allow,deny 
       Allow from all 
     </Directory> 

     #RewriteEngine On 
     #RewriteCond %{HTTP_HOST} public\.mervinkoops\.net [NC] 
     #RewriteRule ^(.*)$ /public/$1 [L] 
     #RewriteCond %{HTTP_HOST} pma\.mervinkoops\.net [NC] 
     #RewriteRule ^(.*)$ /PHPMyAdmin/$1 [L] 
     #RewriteCond %{HTTP_HOST} www\.mervinkoops\.net [NC] 
     #RewriteRule ^(.*)$ /website/$1 [L] 
     #RewriteCond %{HTTP_HOST} mervinkoops\.net [NC] 
     #RewriteRule ^(.*)$ /website/$1 [L] 
     #RewriteCond %{HTTP_HOST} www\.spirecoder\.com [NC] 
     #RewriteRule ^(.*)$ /website/$1 [L] 
     #RewriteCond %{HTTP_HOST} spirecoder\.com [NC] 
     #RewriteRule ^(.*)$ /website/$1 [L] 


</VirtualHost> 

は、[エイリアスに問題がまだあるならば、私たちはその上で動作することができ、メインドメインのために働いて、あなたのエイリアス/ ErrorDocsのものを入手一度ディレクトリを追加すると、すべてが収まるでしょう! ;)]

-sean

+0

あなたの例ではApacheのログは機能していないようですが、error_docsには存在しないというエラーがあります。/var/www/ – Mervin

+0

の下にあるディレクトリに直接書き直す2つのサブドメインがあります。ディレクティブにドメイン/サブドメインを入れたいのですが、の定義を私に追加しました。役職。 – Mervin

+0

私はすべての答えを編集して、うまくいかないものとの混乱を避けました。再読してください。 –