# Clean URL for Drupal 5, FreeBSD 7.0 Stable, Apache22



## JamesHayek (Jan 7, 2011)

Hello Again,

I have been working to enable Clean URL for my Drupal installation all day. I have used tutorials from several sites and ever read though the handbook. After around 14 hrs of reading and trying different approaches I am now seeking help. 


One of the links that I followed was: Here
and another Here and Here


After running:

```
apachectl -M
```

I saw that 

```
rewrite_module (shared)
```
appeared. 

Thinking all is well I modified my .htaccess file to look like this:


```
#
# Apache/PHP/Drupal settings:
#

# Protect files and directories from prying eyes.

#Order deny,allow
#Deny from all
Allow from 127.0.0.1

# Set some options.
Options -Indexes
Options +FollowSymLinks

# Customized error messages.
ErrorDocument 404 /index.php

# Set the default handler.
DirectoryIndex index.php

# Override PHP settings. More in sites/default/settings.php
# but the following cannot be changed at runtime.

# PHP 4, Apache 1

php_value magic_quotes_gpc 0
php_value register_globals 0
php_value session.auto_start 0


# PHP 4, Apache 2

php_value magic_quotes_gpc 0
php_value register_globals 0
php_value session.auto_start 0


# PHP 5, Apache 1 and 2

php_value magic_quotes_gpc 0
php_value register_globals 0
php_value session.auto_start 0


# Reduce the time dynamically generated pages are cache-able.

#ExpiresByType text/html A1


# Various rewrite rules.

RewriteEngine on
# If your site can be accessed both with and without the prefix www.
# you can use one of the following settings to force user to use only one option:
#
# If you want the site to be accessed WITH the www. only, adapt and uncomment the following:
# RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
# RewriteRule .* http://www.example.com/ [L,R=301]
#
# If you want the site to be accessed only WITHOUT the www. , adapt and uncomment the following:
# RewriteCond %{HTTP_HOST} !^example\.com$ [NC]
# RewriteRule .* http://example.com/ [L,R=301]


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

# 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 rules for static page caching provided by the Boost module
# BOOST START

AddCharset utf-8 .html

RewriteCond %{REQUEST_URI} !^/cache
RewriteCond %{REQUEST_URI} !^/user/login
RewriteCond %{REQUEST_URI} !^/admin
RewriteCond %{HTTP_COOKIE} !DRUPAL_UID
RewriteCond %{REQUEST_METHOD} ^GET$
RewriteCond %{QUERY_STRING} ^$
RewriteCond %{DOCUMENT_ROOT}/cache/%{SERVER_NAME}/0/%{REQUEST_URI} -d
RewriteCond %{DOCUMENT_ROOT}/cache/%{SERVER_NAME}/0/%{REQUEST_URI}/index.html -f
RewriteRule ^(.*)$ cache/%{SERVER_NAME}/0/$1/index.html [L]
RewriteCond %{REQUEST_URI} !^/cache
RewriteCond %{REQUEST_URI} !^/user/login
RewriteCond %{REQUEST_URI} !^/admin
RewriteCond %{HTTP_COOKIE} !DRUPAL_UID
RewriteCond %{REQUEST_METHOD} ^GET$
RewriteCond %{QUERY_STRING} ^$
RewriteCond %{DOCUMENT_ROOT}/cache/%{SERVER_NAME}/0/%{REQUEST_URI}.html -f
RewriteRule ^(.*)$ cache/%{SERVER_NAME}/0/$1.html [L]
# BOOST END

# 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]

# $Id: boosted.txt,v 1.4 2006/12/05 10:39:19 arto Exp $
```

I also changed the Virtual Hosts to:

```
# Virtual Hosts, not sure if I am doing this right

<VirtualHost *:81>
ServerName jameshayekserv.com
ServerAlias www.jameshayekserv.com
DocumentRoot /usr/local/www/apache22/data
DirectoryIndex index.html index.htm index.php
<Directory /usr/local/www/apache22/data>
Options All
AllowOverride All
</Directory>
</VirtualHost>
```

I then restarted Apache and went back to the Drupal page to run the Clean URL script but to my surprise I was greeted by a blank page. 

I must of changed the setting several times with no luck. I would really appreciate any help or direction in this matter.

Thanks in advance!


----------



## JamesHayek (Jan 8, 2011)

Ahhh!!! More work and nothing but a migraine! Has anyone had this problem before??


----------



## UNIXgod (Jan 9, 2011)

If you look at your logs when you get the "white screen of death" I betcha you have sig 11 core dump. 

I wrestled with drupal on FreeBSD for just under a year attempting migration of a phpnuke site. Upstream is more interested in having your hire a 'drupal' specialist than fix its issues. Nor do they care much about FreeBSD and blame php for their issues such as the one your having. I've also noticed the same attitude with the megento project.

I would not ever recommend anyone use drupal.... ever.

Look into Ruby on Rails or equivalent framework.

Good luck to you.


----------



## zzatskl (Jan 9, 2011)

I use Drupal 6 and I copied this into my httpd.conf from the Drupal site:


```
<Directory "/usr/local/www/apache22/data/drupal/">
   RewriteEngine on
   RewriteBase /
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</Directory>
```

It works fine. I did it once without understanding the code and have never looked back.
Maybe you should upgrade to later version.


----------



## JamesHayek (Jan 19, 2011)

Thank you for all your help, after much review and reading I had found for this particular problem my RewriteBase setting was incorrect. Instead of 


```
RewriteBase /
```

I used:


```
RewriteBase /drupal
```

Everything worked smoothly and I was able to use images in UberCart and enable CleanURLs for Drupal 5.5 on FreeBSD7



Unfortunately as I got cocky I tried to upgrade to Drupal 7 and now PHP 5 did not install correctly and I do not have support for and extension to MySQL. I can not compile anything from ports. I keep getting an 

```
autoconf: required version 2.68 not found
*** Error code 1
```

error, but I think that's for another post.


Thank you everybody on this issue.


----------

