idris
idris

Reputation: 1049

Not Found when shortening URL

So I have shortened article.php?id=10 to article/10. And it all seemed to work fine. But little did I know that it ruined the rest of my URLs. So with http://localhost/forgot/, I'd have to go to http://localhost/forgot/index to actually reach it. Here's what I'm using

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^article/([0-9]+)$ article.php?id=$1

RewriteRule ^([^\.]+)$ $1.php [NC,L]

I want to go to http://localhost/forgot/ instead of http://localhost/forgot/index/ Any ideas?

Upvotes: 0

Views: 45

Answers (1)

anubhava
anubhava

Reputation: 785681

Have your rules like this:

Options -MultiViews
DirectoryIndex index.php
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^article/([0-9]+)$ article.php?id=$1 [L,QSA,NC]

# rewrite from /dir/file/ to /dir/file.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ /$1.php [L]

Upvotes: 1

Related Questions