Solved

htaccess file preventing access to site

Posted on 2008-10-13
9
787 Views
Last Modified: 2013-11-30
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 $
0
Comment
Question by:phishyman2
  • 3
  • 3
  • 2
  • +1
9 Comments
 
LVL 20

Expert Comment

by:edster9999
ID: 22706776
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.

0
 

Author Comment

by:phishyman2
ID: 22706951
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.
0
 
LVL 5

Expert Comment

by:stephencolson
ID: 22707305
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
0
 

Author Comment

by:phishyman2
ID: 22707420
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.
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 5

Expert Comment

by:stephencolson
ID: 22707456
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)
0
 

Author Comment

by:phishyman2
ID: 22707975
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.
0
 
LVL 5

Expert Comment

by:stephencolson
ID: 22707989
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.
0
 
LVL 20

Accepted Solution

by:
edster9999 earned 500 total points
ID: 22709585
>>> If I access the site by typing:
>>> www.rootdomain.com/folder_with_index.html/index.html then it works.

Thats your problem then... You have told it to look for a file called index.php
The file it needs for this folder is index.html.

Solution 1.
Change the main .htaccess file to say :
DirectoryIndex index.php index.html
thien it will pick up either

Solution 2.
If you can not change this file for any reason then add a new .htaccess in the subfolder with the correct name in it.
0
 
LVL 9

Expert Comment

by:oliverpolden
ID: 22709633
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.
0

Featured Post

What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

Join & Write a Comment

Some time ago I was asked to set up a web portal PC to put at our entrance. When customers arrive, they could see a webpage 'promoting' our company. So I tried to set up a windows 7 PC as a kiosk PC.......... I will spare you all the annoyances I…
Don’t let your business fall victim to the coming apocalypse – use our Survival Guide for the Fax Apocalypse to identify the risks and signs of zombie fax activities at your business.
After creating this article (http://www.experts-exchange.com/articles/23699/Setup-Mikrotik-routers-with-OSPF.html), I decided to make a video (no audio) to show you how to configure the routers and run some trace routes and pings between the 7 sites…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.

708 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now