Enabled Pretty URLs, now I get "Internal Server Error 500"

Permalink 1 user found helpful
My site was working fine until I enabled "Pretty URLs", now I get the following error:

"500 Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request."

If I disable Pretty URLs then it starts working fine again (thank goodness!)

I come from a Drupal CMS background and I know that Drupals "Clean URLs" work fine on my site before. Looks like Clean and Pretty URLs are the same thing, so I would have thought it would work.

Any suggestions?

View Replies:
Remo replied on at Permalink Reply
500 internal server error is a problem with apache configuration or .htaccess file..

Check error.log from apache and you'll see what's wrong.

I guess there's a problem with your .htaccess file but without having access to more information I can only guess..
dibbc replied on at Permalink Reply
Hey, you were right, it was the .htaccess file.

I wasn't even paying attention in the dashboard where it has that big message "copy this text to your htaccess file"!

Giger replied on at Permalink Reply
I'm a graphic designer and until now I manage to "build" our site and edit it.
But for the last 2 month we also get that message. "Internal Server Error..."
I need a professional help. I'm willing to pay for it.
Can one of you find a way to help us?
for now I can't access our concrete site at all. Only the Cpanel or FTP files.
the URL is:http://www.giger.co.il

zoinks replied on at Permalink Reply
I fixed my problem by going into the config/site.php and changing the base url from an ip address to the domain name.

When you open up site.php, on line 6 you should see something like this:

define('BASE_URL', '');

or whatever your ip # is...

Change it to look like this:

define('BASE_URL', 'http://www.yourdomainname.com');

If your DNS isn't pointing to the proper name servers your host gave you, Pretty URLs isn't going to work yet, because even if the base_url is correct, the entire internet isn't resolving the proper name servers for that domain name.

So, just two simple things, really! Hope that helped. When I figured out the problem, I was happily surprised that the solution made sense to me (a designer) and was easy.
Giger replied on at Permalink Reply
Hi Zoinks,
Thank you for the quick reply, but this isn't the problem.
The site.php shows the right site address. I have edit this file when I changed it's location.
what else might the problem be?
zoinks replied on at Permalink Reply
Then, I think it's probably htaccess file. After you enabled pretty URL's, did you copy and paste the code it shows you into the htaccess file?

I had a problem with this because I used TextEdit on a Mac to create the htaccess file. Can't do that because TextEdit throws all this extra junk in there. It must be a plain text (.txt) file. I believe I used Coda to create it, but I may have used TextWrangler or Smultron.

I believe this was the exact code it spat out and told me to put in the htaccess file:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

If not, it looks something like that. You will find it in your dashboard right under where you enabled the PrettyURLs.

So, you make a text file and save it as "htaccess." Then, you FTP this htaccess file into the root of your website. The root, not within Concrete5.

Then, you click on the "htaccess" file on your server and change the name by adding a period in front of it : .htaccess

Now, it will disappear. You can "show invisibiles" in a good FTP client like FireFTP for Firefox and it will display as grey instead of black. Basically, .htaccess makes it an invisible file, so if you name it that way prior to FTPing, it will disappear from your desktop... and that's not cool because you won't be able to find it to upload it.
zoinks replied on at Permalink Reply
msglueck replied on at Permalink Reply
you need FollowSymlinks enabled for mod_rewrite to work.
usually the 500 Error is originating from this.

add Options +FollowSymlinks to your .htaccess.

If you still get the 500 error check if you have AllowOverride All or AllowOverride FollowSymlinks in httpd.conf enabled otherwise the Symlink-option in .htaccess is not allowed and Apache is picky about that, thus throwing a 500.