1
votes

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;
    }
}
?>
1
Is this full message and full htaccess file? - Justinas
I've added the rest of the message, however it didn't appear relevant. These are also the full .htaccess and index.php files. - Ben
Without access to the logs we can only speculate. It could be the Options line, because you're not allowed to set any options. It may be the Rewrite lines, because mod_rewrite isn't activated. It could be something in your PHP page which doesn't work.... - deceze
@deceze Actually it's been solved below. Thank you for your comment. - Ben

1 Answers

2
votes

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.