Solved

htaccess file preventing access to site

Posted on 2008-10-13
9
794 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
Visualize your virtual and backup environments

Create well-organized and polished visualizations of your virtual and backup environments when planning VMware vSphere, Microsoft Hyper-V or Veeam deployments. It helps you to gain better visibility and valuable business insights.

 

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

Easy, flexible multimedia distribution & control

Coming soon!  Ideal for large-scale A/V applications, ATEN's VM3200 Modular Matrix Switch is an all-in-one solution that simplifies video wall integration. Easily customize display layouts to see what you want, how you want it in 4k.

Question has a verified solution.

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

Suggested Solutions

Meet the world's only “Transparent Cloud™” from Superb Internet Corporation. Now, you can experience firsthand a cloud platform that consistently outperforms Amazon Web Services (AWS), IBM’s Softlayer, and Microsoft’s Azure when it comes to CPU and …
ADCs have gained traction within the last decade, largely due to increased demand for legacy load balancing appliances to handle more advanced application delivery requirements and improve application performance.
Viewers will learn how to connect to a wireless network using the network security key. They will also learn how to access the IP address and DNS server for connections that must be done manually. After setting up a router, find the network security…
In this tutorial you'll learn about bandwidth monitoring with flows and packet sniffing with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're interested in additional methods for monitoring bandwidt…

735 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