My .htaccess file currently looks like this
AddType x-mapp-php5 .php Options +FollowSymLinks Options +Indexes RewriteEngine On RewriteBase / RewriteRule ^account$ /account/orders.php [L]
When I go to http://mywebsite.com/account it properly shows the page at http://mywebsite.com/account/orders.php. But when I change the RewriteRule to
RewriteRule ^account/orders$ /account/orders.php [L]
and then I go to http://mywebsite.com/account/orders, I get Error 404 Page Not Found. What did I do wrong?
******Additional Details**
I finally diagnosed the problem. But I don’t understand why my solution works. Consider the scenario where account/orders.php exists.
The following rule will not work
RewriteRule ^account/orders$ account/orders.php [L]
The following rule will work
RewriteRule ^account/order$ account/orders.php [L]
Ie., the rewrite rule will fail if the Pattern evaluates to an existing file. So when the pattern is the same as the substitution, but minus the extension, the rewrite rule will fail. If I add a file called account/order.php, then both rules will fail.
Why does this happen?
Have you tried a relative path?
Edit You should also make sure to have MultiViews disabled. This causes that Apache does some additional vague file matching to find similar named files and thus
/account/orderswould be mapped to/account/orders.phpbefore it’s passed to mod_rewrite.