0

RewriteRuleここのApache(ほとんど)noob ...私がinでやろうとしていることで確かに少しの助けを使うことができます.htaccess:...sharpedge.サブドメインを使用するURLがディレクトリから自動ロードされるようにしますInternet_IE-サイトルートより1レベル深い。

私はこれを持っていますhttpd.conf

[snip]
NameVirtualHost 11.22.33.44

<VirtualHost 11.22.33.44>
    Options All +ExecCGI
    ServerAdmin hostmaster@ourhost.com
    DocumentRoot /var/www/html/ourdomain.com
    ServerName ourdomain.com
    ServerAlias www.ourdomain.com
    DirectoryIndex index.htm index.html index.dna
    #---------------------------------
    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
    </IfModule>
    #---------------------------------
</VirtualHost>

<VirtualHost 11.22.33.44>
    Options All +ExecCGI
    ServerAdmin hostmaster@ourhost.com
    DocumentRoot /var/www/html/ourdomain.com
    ServerName  sharpedge.ourdomain.com
    DirectoryIndex index.htm index.html index.dna
    #---------------------------------
    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
    </IfModule>
    #---------------------------------
</VirtualHost>
[snip]

...そしてこれは.htaccessにあります(サイトルートのここ:/var/www/html/ourdomain.com/)

Options -Indexes

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    RewriteCond   %{HTTP_HOST} ^sharpedge\.ourdomain\.com$
    # years ago this next line was used here, but in httpd.conf: (I don't know what it was supposed to do)
    # RewriteRule   ^(.+)        %{HTTP_HOST}$1          [C]
    RewriteRule   ^sharpedge\.ourdomain\.com(.*) /var/www/html/ourdomain.com/Internet_IE/$1  [L]
</IfModule>

..しかし、RewriteRuleからは何も起こりません。RewriteRuleがなかったかのようです。

何か提案をいただければ幸いです。

編集:

  • DocumentRootを実際に提供したいディレクトリに変更するだけですが、そのディレクトリ内のファイルから/、インクルードパスにプレフィックスを付けてファイルを呼び出す(インクルードする)ことができる必要があります。これらのファイルはサイトルートにあります。 。これらのファイルは、サイトルートにある他のファイルからも同様に呼び出されます。
4

1 に答える 1

1

ホストのどの部分もに入れたくないRewriteRuleが、HTTP_HOSTを正しく取得した場合は、次を試してください。

RewriteCond %{HTTP_HOST} ^sharpedge\.ourdomain\.com$ [NC]
# to prevent looping
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /Internet_IE/$1 [L]

!-f!-dチェックを変更してみてください。

RewriteCond %{HTTP_HOST} ^sharpedge\.ourdomain\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/Internet_IE/
RewriteRule ^(.*)$ /Internet_IE/$1 [L]
于 2012-07-31T15:50:48.970 に答える