Apacheサーバは非常に基本的な設定でセットアップされています。私はApacheから1つのWebサイトだけを提供していましたが、example.comと呼んでいます。 httpd.confファイル内には、URLにwwwを常に表示するようにWebサイトに強制するコードがありました。Apache - 仮想ディレクトリを追加した後、mod_rewriteを使用できなくなりました。
私は最近、サイトのサブドメインblog.example.comを追加しました。これを行うために、私はhttpd.confファイル内に2つの仮想ディレクトリディレクティブを作成する必要がありました。この直後
NameVirtualHost *:80
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html
</VirtualHost>
<VirtualHost *:80>
ServerName blog.example.com
DocumentRoot /var/www/blog
</VirtualHost>
、私は私の書き換えコードを保持:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/(.*) http://www.example.com/$1 [L,R]
問題は、この仮想ディレクトリのコードを追加した後、書き換えコードは、もはや機能していることではありません。私は以下のDirectoryディレクティブを作成しようとしましたが、まったく動作しないようです。
<Directory "/var/www/html">
Options Indexes MultiViews FollowSymLinks
Order Deny,Allow
Allow from all
AllowOverride All
</Directory>
はまた、私は、ウェブサイトのHTMLフォルダに.htaccessファイルを作成し、Apacheを再起動してみましたが、私はそこに入れても何も全く気づいていないばかりれます。
ご協力いただきまして誠にありがとうございます。ありがとう!元のポスターによるコメントから
これはすべて、httpd.confファイルにありますか、別のファイルの直後のものか、別のファイルですか? – animuson
これはすべてhttpd.confファイルにあります。 –
さて、私はそれを理解しました。私はちょうど開始と終了指示の中で書き換えロジックを移動する必要がありました。 help @animusonに感謝します。 –