Solved

htaccess file preventing access to site

Posted on 2008-10-13
9
797 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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
PeopleSoft Has Never Been Easier

PeopleSoft Adoption Made Smooth & Simple!

On-The-Job Training Is made Intuitive & Easy With WalkMe's On-Screen Guidance Tool.  Claim Your Free WalkMe Account Now

 

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
 
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 10

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

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Short answer to this question: there is no effective WiFi manager in iOS devices as seen in Windows WiFi or Macbook OSx WiFi management, but this article will try and provide some amicable solutions to better suite your needs.
Make the most of your online learning experience.
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.
Here's a very brief overview of the methods PRTG Network Monitor (https://www.paessler.com/prtg) offers for monitoring bandwidth, to help you decide which methods you´d like to investigate in more detail.  The methods are covered in more detail in o…
Suggested Courses
Course of the Month5 days, 7 hours left to enroll

626 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