1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Clean URL for Drupal 5, FreeBSD 7.0 Stable, Apache22

Discussion in 'Web and Network Services' started by JamesHayek, Jan 7, 2011.

  1. JamesHayek

    JamesHayek New Member

    Messages:
    24
    Likes Received:
    0
    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:
    Code:
    apachectl -M
    I saw that
    Code:
    rewrite_module (shared)
    appeared.

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

    Code:
    #
    # 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:
    Code:
    # 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!
     
  2. JamesHayek

    JamesHayek New Member

    Messages:
    24
    Likes Received:
    0
    Ahhh!!! More work and nothing but a migraine! Has anyone had this problem before??
     
  3. UNIXgod

    UNIXgod New Member

    Messages:
    1,089
    Likes Received:
    0
    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.
     
  4. zzatskl

    zzatskl New Member

    Messages:
    43
    Likes Received:
    0
    I use Drupal 6 and I copied this into my httpd.conf from the Drupal site:

    Code:
    <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.
     
  5. JamesHayek

    JamesHayek New Member

    Messages:
    24
    Likes Received:
    0
    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

    Code:
    RewriteBase /
    I used:

    Code:
    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
    Code:
    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.