0

For some reason Apache is throwing an error if I use this rewrite rule in my .htaccess file

RewriteRule ^(.*)$ /controller.php?lang=en&page=$1 [NE,QSA,L]

What I want to achieve is the following: If the user hits

https://www.mywebsite.com/whatever

I want to call

https://www.mywebsite.com/controller.php?lang=en&page=whatever

Here's the error I get:

Internal Server Error

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

Please contact the server administrator at webmaster@mywebsite.com to inform them of the time this error occurred, and the actions you performed just before this error.

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

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.

Gianluca Ghettini
  • 11,129
  • 19
  • 93
  • 159
  • Look into the `error.log` for details. Possibly enable the rewrite log as well. Also this rule is too generic and going to recurse. – mario Nov 21 '18 at 17:57
  • ok found the problem, the rewritten url was matching again the rule causing an infinite loop – Gianluca Ghettini Nov 21 '18 at 18:03
  • Either strip the leading target `/` or use the `[END]` flag. Better yet use something more fitting than `(.*)`, such as `\w+` – mario Nov 21 '18 at 18:04

0 Answers0