[support] Clean URL support when parent web directory

Michael Mansour drupal at npgx.com.au
Tue Apr 11 01:45:43 UTC 2006


Hi,

I'm very new to Drupal and have only started using it since yesterday.

I've done some trouble-shooting on this problem but can't resolve it.

I'm trying to use the "Clean URLs" option in "Administrator -> Settings" but 
it fails with the error:

It appears your host is not configured correctly for Clean URLs. Please 
check for ModRewrite support with your administrator.

I have Drupal installed off a parent website:

http://www.domain.com

where the drupal files actually exist, and _not_ through a subdirectory like:

http://www.domain.com/drupal

If I install Drupal into the subdirectory on the same server, the Clean URLs 
option works fine. If I install Drupal into the parent directory of the web 
server, drupal fails with the error above.

In my apache config, when I have the parent server setup, I have the 
following entry:

UseCanonicalName off
VirtualDocumentRoot /home/domain/public_html/%0

which allows me to have alias directories like:

/home/domain/public_html/www.domain.com
/home/domain/public_html/hostname1.domain.com
/home/domain/public_html/hostname2.domain.com

so when someone goes to "http://www.domain.com" apache maps them to the:

/home/domain/public_html/www.domain.com

directory, and when they visit "http://hostname1.domain.com", apache maps 
them to the:

/home/domain/public_html/hostname1.domain.com

directory and so on.

This is how I've set it up for Drupal, to reside under:

/home/domain/public_html/www.domain.com

I don't want a "drupal" subdirectory or anything, but still want to use 
Clean URLs.

What's the problem here?

Note also I have:

# Various rewrite rules.
<IfModule mod_rewrite.c>
  RewriteEngine on

  # Modify the RewriteBase if you are using Drupal in a subdirectory and
  # the rewrite rules are not working properly.
  #RewriteBase /drupal

  # Rewrite old-style URLs of the form 'node.php?id=x'.
  #RewriteCond %{REQUEST_FILENAME} !-f
  #RewriteCond %{REQUEST_FILENAME} !-d
  #RewriteCond %{QUERY_STRING} ^id=([^&]+)$
  #RewriteRule node.php index.php?q=node/view/%1 [L]

  # Rewrite old-style URLs of the form 'module.php?mod=x'.
  #RewriteCond %{REQUEST_FILENAME} !-f
  #RewriteCond %{REQUEST_FILENAME} !-d
  #RewriteCond %{QUERY_STRING} ^mod=([^&]+)$
  #RewriteRule module.php index.php?q=%1 [L]

  # Rewrite current-style URLs of the form 'index.php?q=x'.
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</IfModule>

in my .htaccess file within the /home/domain/public_html/www.domain.com 
directory, and my settings for:

<Directory /home/domain/public_html>
Options Indexes IncludesNOEXEC FollowSymLinks
AllowOverride All
</Directory>

in my apache conf. I'm using apache 2.0.52.

Thanks for any help here.

Michael.



More information about the support mailing list