Ben
Ben

Reputation: 9001

Very basic .htaccess returning 500 Server Error

What I'm expecting to happen

When someone visits example.com/foo, they see example.com/index.php?page=foo.

example.com/index.php?page=foo is working correctly.

What actually happens

Instead, I see a 500 Internal Server Error page, which states:

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, webmaster@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

I have no access to the logs.


Code

.htaccess

Options -Multiviews
RewriteEngine On
RewriteBase /
RewriteRule ^([^/]*)$ /index.php?page=$1 [L]

index.php

<?php
if(isset($_GET["page"])){
    switch($_GET["page"]){
        case "register" :
            echo "Registration Page Placeholder";
            break;
    }
}
?>

Upvotes: 1

Views: 421

Answers (1)

hjpotter92
hjpotter92

Reputation: 80639

You should first check whether the request is accessing index.php or not.

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/index\.php [NC]
RewriteRule ^([^/]*)/?$ /index.php?page=$1 [L]

You're probably getting stuck with infinite rewrites.

Upvotes: 2

Related Questions