ハードディスクメンテナンス ブログ

投稿記事数8,000以上!PC,カメラ,オーディオ,ラジオ,航空,旧ゲームなど

ApacheでのURL書換有効化(mod_rewrite,.htaccess,Debian7.4,Apache2.2.22)

   

>>高還元のクレジットカード比較 期間限定のキャッシュバックなど!<<


(Debian7.4 , Apache2.2.22)

http://xxx.xxx.xxx.xxx/index.php?pid=001
http://xxx.xxx.xxx.xxx/index.php?pid=002

というような、GETをURLの一部として送るのは長いので、

http://xxx.xxx.xxx.xxx/001.html
http://xxx.xxx.xxx.xxx/002.html

のように書き換えるのが、mod_rewriteだ。

関連:Apache Module mod_rewrite

http://xxx.xxx.xxx.xxx/index.php?aaa=001&bbb=002&ccc=003

http://xxx.xxx.xxx.xxx/aaa_001-bbb_002-ccc_003.html

等、パラメーターの多い、複雑なURLを短くすることが可能。

この、URLの書き換えを行うには、

mod_rewriteの読み込み

.htaccessの使用許可

の両方が必要。

レンタルサーバーでは多くの場合、これらが最初から有効となっているので、書換規則を.htaccessに書けば終了だが、自分で立てた場合は両方とも無効になっていることが多い。

■ ① mod_rewriteの読み込み ■

Apacheの設定ファイルは

/etc/apache2/apache2.conf

にあるが、その下の

/etc/apache2/mods-available

rewrite.load

がある。

これがrewriteモジュール。

Apacheの起動時に、これがloadされていない場合があるので、loadするように設定する。

なお、rewrite.loadの中身は、おなじみの(笑)

LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

である。

まず、コマンドで

apache2ctl -M

とし、mod_rewriteがロードされているか確認。

root@debian:~# apache2ctl -M

—–

apache2: Could not reliably determine the server’s fully qualified domain name, using xxx.xxx.xxx.xxx for ServerName
Loaded Modules:
core_module (static)
log_config_module (static)
logio_module (static)
version_module (static)
mpm_prefork_module (static)
http_module (static)
so_module (static)
alias_module (shared)
auth_basic_module (shared)
authn_file_module (shared)
authz_default_module (shared)
authz_groupfile_module (shared)
authz_host_module (shared)
authz_user_module (shared)
autoindex_module (shared)
cgi_module (shared)
deflate_module (shared)
dir_module (shared)
env_module (shared)
mime_module (shared)
negotiation_module (shared)
php5_module (shared)
reqtimeout_module (shared)
setenvif_module (shared)
status_module (shared)
Syntax OK
root@debian:~#

—–

結果にrewrite_moduleがないので、入っていないようだ。

よって、入れる必要がある。

mod_rewriteを有効化する。

スポンサーリンク

a2enmod rewrite

—–

root@debian:~# a2enmod rewrite
Enabling module rewrite.
To activate the new configuration, you need to run:
service apache2 restart
root@debian:~#

—–

Apacheの再起動が必要。

/etc/init.d/apache2 restart

そして再度apache2ctl -Mを実行。

apache2: Could not reliably determine the server’s fully qualified domain name, using xxx.xxx.xxx.xxx for ServerName
Loaded Modules:
core_module (static)
log_config_module (static)
logio_module (static)
version_module (static)
mpm_prefork_module (static)
http_module (static)
so_module (static)
alias_module (shared)
auth_basic_module (shared)
authn_file_module (shared)
authz_default_module (shared)
authz_groupfile_module (shared)
authz_host_module (shared)
authz_user_module (shared)
autoindex_module (shared)
cgi_module (shared)
deflate_module (shared)
dir_module (shared)
env_module (shared)
mime_module (shared)
negotiation_module (shared)
php5_module (shared)
reqtimeout_module (shared)
rewrite_module (shared)
setenvif_module (shared)
status_module (shared)
Syntax OK
root@debian:~#

—–

となり、rewrite_moduleが追加されたことが確認できる。

なお、ロードされているモジュールは、PHPが使える環境であれば

<?PHP echo phpinfo(); ?>

でも確認可能。

PHP Credits>Configuration>apache2handler

mod_rewrite

なお、モジュールを無効化するには、

a2dismod rewrite

とし、Apacheを再起動すればよい。

■ ② .htaccessの使用許可 ■

次に、URLの書き換え。

URLの書き換えは.htaccessで行うが、.htaccessが使用できない(読込が許可されていない)設定になっている場合がある。

その場合は、

/etc/apache2/sites-available

にあるdefaultを、以下のように書き換える。

(前)
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

(後)
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride FileInfo Options
Order allow,deny
allow from all
</Directory>

そして、Apacheを再起動。

.htaccess

RewriteEngine on

RewriteRule ~~~

RewriteRule ~~~

を書いて、書き換えが成功しているか確認する。

RewriteRuleの書き方については、ここでは割愛する。

スポンサーリンク



sha-bc@336×280

sha-bc@336×280


sha-bc@336×280

sha-bc@336×280

  関連記事

Windows10
Windows10無償アップグレード終了後のライセンス認証について

以下で書いた件について。 関連:Windows10 無償アップグレード終了後の疑 …

B00QIH3RWW
Samsungの SSD 850 EVO 250GB MZ-75E250B/IT がタイムセールで9,480円!

Samsung SSD 250GB 850 EVO ベーシックキット 2.5イン …

B012QX3YNI
Dellの 21.5型液晶モニター フルHD(1920×1080) IPS光沢液晶 スピーカ内蔵 3年保証 S2216H がタイムセールで15,954円!

グレア(光沢)派のアナタに! Dell 21.5型 ワイド液晶モニタ 3年保証 …

B01GGV1AIM
Acer(エイサー)の 27型 ゲーミング液晶モニター フルHD(1920×1080) TN 非光沢 1ms KG270bmiix がタイムセールで19,800円!

Acer ディスプレイ モニター KG270bmiix 27インチ/フルHD/ノ …

B00U9ZJR0U
LGの 27型 AH-IPS非光沢 フルHD 液晶モニター 27MP37VQ-B がタイムセールで19,800円!

27型 AH-IPS でコノ価格! LG Electronics Japan 2 …

B00XXZHJ8U
I-O DATAの 20.7型液晶モニター FHD(1920×1080) 非光沢 EX-LD2071TB がタイムセールで11,980円!

I-O DATA 20.7型ワイド液晶ディスプレイ (コンパクトサイズフルHD/ …

B00PU5LFF4
BUFFALOの 無線LAN親機(Wi-Fiルーター) エアステーション WZR-S1750DHP (写真バックアップキット for iPhone付属) がタイムセールで12,990円!

BUFFALO 【iPhone6対応】 11ac/n/a/b/g対応 無線LAN …

B015FY4HLS
ASUSTeKの ATX マザーボード Intel Z170 LGA1151 Z170I PRO GAMING がタイムセールで19,900円!

最新のSkylake対応かつZ170であるからK付きモデルのオーバークロックに対 …

B01HCT7DR4
NETGEAR(ネットギア)の SIMフリー モバイルルーター AirCard 予備BT付 AC785-100JPS/SET がタイムセールで12,972円!

関連:AC785-100JPS NETGEARのSIMフリーモバイルルーター A …

B00XXZHJ8U
I-O DATAの 20.7型液晶モニター FHD(1920×1080) 非光沢 EX-LD2071TB がタイムセールで11,980円!

I-O DATA 20.7型ワイド液晶ディスプレイ (コンパクトサイズフルHD/ …