Link to home
Start Free TrialLog in
Avatar of phishyman2
phishyman2

asked on

htaccess file preventing access to site

Background:

I have a hosting account with GoDaddy and I am hosting four websites. One is running Wordpress, two are using Drupal, and one is just an HTML site. After installing Drupal for the second site I got this error while trying to access the HTML site:

Forbidden
You don't have permission to access / on this server.
Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
Apache/1.3.33 Server at www.bentleypontoonboatsonline.com Port 80

The guys at GoDaddy said it was my htaccess file that was causing this, but could offer no help as to how to solve it. If I change the name of the htaccess file to something else, the HTML site works and the homepages on the Drupal site work, but any links in the Drupal site say the page cannot be found.
The Wordpress site is not effected either way.

The HTML uses the root folder (where the htaccess file is) and the other sites use sub folders.

I am not sure what the htaccess file does. Can anyone help me?

Here is the 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

# Make Drupal handle any 404 errors.
ErrorDocument 404 /index.php

# Force simple error message for requests for non-existent favicon.ico.
<Files favicon.ico>
  ErrorDocument 404 "The requested file favicon.ico was not found.
</Files>

# 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 /drupal
  #
  # If your site is running in a VirtualDocumentRoot at http://example.com/,
  # uncomment the following line:
  # RewriteBase /

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

# $Id: .htaccess,v 1.90.2.1 2008/07/08 09:33:14 goba Exp $
Avatar of edster9999
edster9999
Flag of Ireland image

This is saying there is nothing you are allowed to look at so I am showing you nothing.

First it looks for the Index page.
DirectoryIndex index.php

Do you have a file in the root directory called index.php (case sensitive) ?
Is it set with permisions so it is readable by the web server user ?

Then it tires to look at a directory listing of all the files
but you have :
Options -Indexes
This says do not do that so it has nothing else to show.

Make sure your file is index.php (or change the line above to match what you do have) and it should work.

Avatar of phishyman2
phishyman2

ASKER

Sorry, I made a huge mistake in my description. The root folder uses Drupal and a sub folder has the HTML site. Yes the root folder has a index.php file and that works. It is when I tries to access the index.html file in the subfolder that it gives the error above. If I access the site by typing:
www.rootdomain.com/folder_with_index.html/index.html then it works.
But if I type: www.domain.com that is mapped to the subfolder, I get the error.
Two things to check:

1. Make sure your file permissions are appropriate. The .htaccess and index.php files should ideally be 775, 755, or 555 (able to read and execute across the board)

2. For a Drupal installation I did on GoDaddy, I found that I needed to uncomment the "RewriteBase /" line
I checked both of those things. The .htaccess file is working and the drupal installations are fine, but that .htaccess file will not let me access a mapped domain in a subfolder.
If the .htaccess file were purely misconfigured, the internal 500 error should have been the primary error. Instead, it said the 403 was the primary error. Almost 100% of the time it is due to file permissions. I would highly recommend double and triple checking all of the file permissions on files and their requisite folders.

Could you show us what the file list (with permissions) looks like? I'm particularly interested in .htaccess, index.php, "." (current directory), and ".." (parent directory)
I am using GoDaddy so I don't know how to get you a list of the permissions.

Remember, if I delete the .htaccess file, the HTML website works. So in my mind, it is a configuration issue with the htaccess file. But that is just a guess.
You would check with your ssh or ftp client, or use GoDaddy's web interface to manually get the permissions.

One question that I didn't ask is which specific hosting plan you have at GoDaddy. To the best of my knowledge, certain plans just aren't compatible with Drupal and a number of other content management systems.
ASKER CERTIFIED SOLUTION
Avatar of edster9999
edster9999
Flag of Ireland image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of oliverpolden
Why do you have a static html page?  What exactly are you trying to achieve here?

If I was you, I would scrap any static html pages and get Drupal to do it all for you.  You may find this module useful: http://drupal.org/project/front

If you have a set of pages, you could create a content type in Drupal, create all your pages with that content type and create a template for that content type so they look like your static pages.

I always say, do things the way they're should be done rather than trying to fight things the wrong way.