LoginSignup
2
2

More than 5 years have passed since last update.

Drupal7のクリーンURLを有効にするためのapache設定

Last updated at Posted at 2014-06-12

Webサイト制作はもっぱらDrupalで作ってるsutekicut。
海外ではWordPressと並んで有名なCMS(最近はCMSというよりほとんどWebフレームワーク化してる)
最初は難しいけど、なれればかなり細かいカスタマイズがけっこう簡単にできるのでとてもよい。

Drupal初心者のときに
仮想サーバーをたてて、Drupal7をインストールしようとしたときのメモ。
※自分の勉強と将来迷われた方のためにメモを書いています。
まだまだ経験が浅く理解が足りない部分、間違っている部分はあると思いますが、そんなときはぜひ容赦のないツッコミを!(ドMなのでw)

ハード構成
Machine:Windows Hyper-V
OS:CentOS6
Server:httpd2.2、PHP5.3、MySQL5.5

クリーンURLが設定できない・・・

クリーンURLとは??
DrupalにはクリーンURL機能が搭載されている。
クリーンURLとは、URLに記載されるGETパラメータを見かけの上で整形する。
※Drupal内部では、きちんとGETパラメータ付きのURLとして解釈される。

<具体例>
■内部的パス(Drupalが解釈するURL)
http://hoge.com/?q=node/83(←GETパラメータ)

■クリーンURL(ブラウザ上で表示されるURL)
http://hoge.com/node/83

環境構築設定画面で設定しようとしても、グレーアウトした状態で有効にできない!

Apacheの設定をちゃんと書かねば・・・

クリーンURLの書き換え処理はDrupal内部の.htaccessで行うみたい。
=>ということは.htaccessの使用を許可する処理を書けばいいわけだな。

なんでApacheの設定でDirectoryディレクティブAllowOverride ALLをちゃんと記載する。

httpd.conf
<Directory "/var/www/drupal-7.15">
  AllowOverride All
</Directory>

・AllowOverrideは.htaccessによる制限を許可する
<Directory>ディレクティブは中に書いた命令の適用範囲をサーバー内のディレクトリで指定する。
<Location>ディレクティブもあって、こちらはURLで適用範囲を決める。
もし、DrupalのDocumentRootが/var/www/drupalだった場合。

httpd.conf
<VirtualHost *:80>
  DocumentRoot /var/www/drupal
  ServerName drupal-codeip.com
  ##こいつらは同じ適用範囲になる

  #サーバー内では/var/www/drupalでDocumentRootにしたので→http://drupal-codeip.com/以下
  <Directory "/var/www/drupal">
  </Directory>

  <Location "/">#(URL上の適用範囲→http://drupal-codeip.com/以下)
  </Location>
</VirtualHost>

これでクリーンURLが設定できるようになった!

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2