スポンサードリンク

【mod_rewrite】「httpd.conf」での設定方法

ApacheのモジュールであるURL書き換えエンジン mod_rewriteは、「httpd.conf」または「.htaccess」で設定できます。

ここでは、「httpd.conf」での設定方法を紹介します。

スポンサードリンク

mod_rewriteが使用可能か確認

まず、mod_rewriteが許可されているか確認します。

[○○○@vweb2 ~]# vi /etc/httpd/conf/httpd.conf

上のコマンドを実行して以下の記述がある、かつコメントアウトされていないか確認してください。

LoadModule rewrite_module modules/mod_rewrite.so

先頭に「#」があればコメントアウトされていますので、それを削除します。ない場合は追加します(mod_rewriteをインストールしていない場合はインストールする)。

修正した場合は、以下のようにhttpdを再起動します。

[○○○@vweb2 ~]# /etc/rc.d/init.d/httpd restart

httpd.confの編集

環境・条件

環境・条件を整理しておきます。

  • 「○○○.com」を以下のようにバーチャルホストしている
    <VirtualHost *:80>
    DocumentRoot /var/www/html/○○○
    ServerName ○○○.com
    ServerAlias www.○○○.com
    <Directory "/var/www/html/○○○">
    AllowOverride All
    </Directory>
    </VirtualHost>

このとき、「http://○○○.com/abc/index.html」でアクセスがあった場合、「http://○○○.com/abc/index2.html」にリダイレクトさせたいと思います。

編集

バーチャルホストの設定を「httpd.conf」に記述している場合は①、「vhost.conf」に記述している場合は②のコマンドを実行します。

[○○○@vweb2 ~]# vi /etc/httpd/conf/httpd.conf ・・・①

[○○○@vweb2 ~]# vi /etc/httpd/conf.d/vhost.conf ・・・②

編集モードにして、次のように記述を追加します。

<VirtualHost *:80>
DocumentRoot /var/www/html/○○○
ServerName ○○○.com
ServerAlias www.○○○.com
RewriteEngine On
RewriteRule ^/abc/index\.html$ /abc/index2.html [R,L]
<Directory "/var/www/html/○○○">
AllowOverride All
</Directory>
</VirtualHost>

そしてhttpdを再起動します。

[○○○@vweb2 ~]# /etc/rc.d/init.d/httpd restart

これで、「http://○○○.com/abc/index.html」のアクセスがあった場合、「http://○○○.com/abc/index2.html」にリダイレクトされます。

挙動

簡単に挙動を書くと、「http://○○○.com/abc/index.html」でアクセスがあった場合、RewriteRuleには「/abc/index.html」が渡ります(「/」が先頭につく、この詳細は「.htaccess」と「httpd.conf」での設定による違いを参照)。

そしてパターンマッチが成功し、「/abc/index2.html」にURLが書き換えられ、リダイレクトされます。

RewriteBaseを記述する場合の注意点

RewriteBaseを使用する場合、次のように記述し

<VirtualHost *:80>
DocumentRoot /var/www/html/○○○
ServerName ○○○.com
ServerAlias www.○○○.com
RewriteEngine On
RewriteBase /abc
RewriteRule ^/abc/index\.html$ index2.html [R,L]
<Directory "/var/www/html/○○○">
AllowOverride All
</Directory>
</VirtualHost>

httpdを再起動させようとすると、次のようなエラーがでて再起動ができません。

Starting httpd: Syntax error on line 1013 of /etc/httpd/conf/httpd.conf:
RewriteBase: only valid in per-directory config files

これは、エラーにあるようにRewriteBaseは「ディレクトリ毎の設定ファイルでのみ有効」となります。

すなわち次のように、Directoryセクションにmod_rewriteを記述しなければなりません。

<VirtualHost *:80>
DocumentRoot /var/www/html/○○○
ServerName ○○○.com
ServerAlias www.○○○.com
<Directory "/var/www/html/○○○">
AllowOverride All
RewriteEngine On
RewriteBase /abc
RewriteRule ^abc/index\.html$ index2.html [R,L]
</Directory>
</VirtualHost>

なお、この場合、Directoryセクションにmod_rewriteを記述しているので、RewriteRuleにわたってくるURLは「/abc/index.html」ではなく、「abc/index.html」となります(先頭に「/」は付かない)。

コメント

1:clubAstessy:2018/09/16 1:23:19

In spa salon happy ending massage master of massage will make sensual bodywork massage.
Our masseuses enough qualified in order to subsequently session nuru massage you felt yourself simply ideally and were always ready to indescribable sensual feats. The spa center body rub waiting visit one of the ways massage techniques, is what we do. The amazing women our the spa salon will give you an unforgettable experience. The salon is a place of rest and relaxation.
We in Gotham we recommend luxurious placement with comfortable interior. All of these premises can help to stay with you not attracting the attention of other customers.
Sultry top models will make you Body to body massage and japanese massage, you can right to choose several varieties massage on your solution. Success organization Bamboo Erotic Massage composed, then to, in 1st you received from of this buzz.
Sensitive touching exquisite masseuse girls there will be a flow on your body, dipping in abyss boundless seas bliss. In the leisurely slip, donating your skin kisses, seduce envelops the warmth of one's body. You must be amazed at that, which sea bliss today it is possible to feel frommassage with stones in Empire City

We have a showroom in NY. Beauties Sierra
erotic massage room

コメントフォーム
お名前
コメント