Clean URLが効かない

2015.04.08

Drupalでサイトを製作時にたまにハマるのでメモ。

root階層でDrupal6使用。

2階層目でDrupal7を使用。

2階層目でDrupal7でClean URLが効かない現象。

URLの後ろに?q=が付いてしまう。

例で上げると hogehoge.com/hige/?q=hogehoge

みたいな感じ。

解決方法はDrupal7の.htaccessを修正する。

  # Pass all requests not referring directly to files in the filesystem to
  # index.php. Clean URLs are handled in drupal_environment_initialize().
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !=/favicon.ico
  RewriteRule ^ index.php [L]
修正後
  # Pass all requests not referring directly to files in the filesystem to
  # index.php. Clean URLs are handled in drupal_environment_initialize().
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  #RewriteCond %{REQUEST_URI} !=/favicon.ico
  #RewriteRule ^ index.php [L]
RewriteCond %{REQUEST_URI} ^/(.*)$
RewriteRule ^(.*)$ /hige/?q=$1 [L,QSA]

で一応動いている。