Amount: $100 (PayPal only)
Due date: March 3, 2008
Payment to: first person who provides working solution.
Hi:
I need help with our nonprofit organization’s Drupal website.
The website was working until I moved it to a new dedicated server, placed temporally in my house. Now I can only access the frontpage. The rest of the pages don’t found.
The server uses Ubuntu, Apache/2.0.55, PHP/5.1.2 Mysql-server-5.0.
We are using No-IP DNS and redirection service to map the dynamic IP address.
I need exact instructions on what to do.
Thanks in advance to anyone who can help.

Comments

criznach’s picture

Sounds like clean URLs are not working. Some FTP clients won't copy your .htaccess file. If you can't copy the original, try dropping in a stock 5.7 .htaccess file in the root.

If that doesn't work, mod_rewrite may not be enabled. Create a file called phpinfo.php in your root:

phpinfo();

and try it in your browser. http://www.example.com/phpinfo.php.

Make sure it shows that mod_rewrite is enabled.

My contact form is on if you need more help.

Chris Miller
Trailhead Interactive

svelasco’s picture

Chris:

The .htacces and phpinfo.php exist.
The mod_rewrite is enable.

This is my .htaccess file:

#
# Apache/PHP/Drupal settings:
#

# Protect files and directories from prying eyes.
<FilesMatch "\.(engine|inc|info|install|module|profile|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(code-style\.pl|Entries.*|Repository|Root|Tag|Template)$">
  Order allow,deny
</FilesMatch>

# Don't show directory listings for URLs which map to a directory.
Options -Indexes

# Follow symbolic links in this directory.
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.
<IfModule mod_php4.c>
  php_value magic_quotes_gpc                0
  php_value register_globals                0
  php_value session.auto_start              0
  php_value mbstring.http_input             pass
  php_value mbstring.http_output            pass
  php_value mbstring.encoding_translation   0
</IfModule>

# PHP 4, Apache 2.
<IfModule sapi_apache2.c>
  php_value magic_quotes_gpc                0
  php_value register_globals                0
  php_value session.auto_start              0
  php_value mbstring.http_input             pass
  php_value mbstring.http_output            pass
  php_value mbstring.encoding_translation   0
</IfModule>

# PHP 5, Apache 1 and 2.
<IfModule mod_php5.c>
  php_value magic_quotes_gpc                0
  php_value register_globals                0
  php_value session.auto_start              0
  php_value mbstring.http_input             pass
  php_value mbstring.http_output            pass
  php_value mbstring.encoding_translation   0
</IfModule>

# Requires mod_expires to be enabled.
<IfModule mod_expires.c>
  # Enable expirations.
  ExpiresActive On
  # Cache all files for 2 weeks after access (A).
  ExpiresDefault A1209600
  # Do not cache dynamically generated pages.
  ExpiresByType text/html A1
</IfModule>

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

  # If your site can be accessed both with and without the 'www.' prefix, you
  # can use one of the following settings to redirect users to your preferred
  # URL, either WITH or WITHOUT the 'www.' prefix. Choose ONLY one option:
  #
  # To redirect all users to access the site WITH the 'www.' prefix,
  # (http://example.com/... will be redirected to http://www.example.com/...)
  # adapt and uncomment the following:
  # RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
  # RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
  #
  # To redirect all users to access the site WITHOUT the 'www.' prefix,
  # (http://www.example.com/... will be redirected to http://example.com/...)
  # uncomment and adapt the following:
  # RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
  # RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]

  # Modify the RewriteBase if you are using Drupal in a subdirectory or in a
  # VirtualDocumentRoot and the rewrite rules are not working properly.
  # For example if your site is at http://example.com/drupal uncomment and
  # modify the following line:
  RewriteBase /cfcf
  #
  # If your site is running in a VirtualDocumentRoot at http://example.com/,
  # uncomment the following line:
  # 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 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>

# $Id: .htaccess,v 1.81.2.4 2008/01/22 09:01:39 drumm Exp $

Thank you for your help.

rernst’s picture

Your rewrite base is currently:

# Modify the RewriteBase if you are using Drupal in a subdirectory or in a
# VirtualDocumentRoot and the rewrite rules are not working properly.
# For example if your site is at http://example.com/drupal uncomment and
# modify the following line:
RewriteBase /cfcf

is it still on the same path relative to the server? If not, clean URLs will not work. Also check out $base_url in sites/default/settings.php

criznach’s picture

Good catch. I missed that, but that could be it.

svelasco’s picture

It still on the same path relative to the server.

pvswan’s picture

I finally found the answer to enabling clean-urls on my own Ubuntu-based test server at http://ubuntuforums.org/archive/index.php/t-52856.html .

Go to '/etc/apache2/sites-enabled/' and open the default file there, '000-default'.

Under the section 'DocumentRoot /var/www' change 'AllowOverride None' to 'AllowOverride All'

If the directory contains any additional files for individual sites, you may need to change the AllowOverride in one or more of them also.

pvswan

pvswan’s picture

I just noticed that an even more complete set of Ubuntu-Drupal specific instructions has already been incorporated into the Drupal Manual on this site - go to http://drupal.org/node/134439

This first comment includes this same fix.

pvswan

somes’s picture

Is it a standard install of drupal are there any extra modules you made(php snippets you might have added) - are the server setups the same

svelasco’s picture

I am using standard modules.

naurisr’s picture

Empty all cache tables on DB server (make backup before)
or
Run www.yoursite.com/update.php (with $access_check = TRUE; if needed). That will clear cache

naurisr’s picture

Look at $base_url setting in settings.php

criznach’s picture

This is fixed, and Salavdor asked me to post a quick summary of the troubleshooting process and solution. In his case, Ubuntu Server's AllowOverride setting disallows Drupal's .htaccess. I've created a handbook page under troubleshooting...

http://drupal.org/node/228462