Question

Below is my original url

http://localhost/mysite/mainarticle?article_id=84

RewriteRule

RewriteRule ^/article/([0-9]+) /mainarticle?article_id=$1 [L]

new url

http://localhost/mysite/article/84

When I use the new url it gives the Object not found error. Seems like my rewrite rule is not working. Need your help if I'm using the rule correctly or changes are needed.

Note:

I'm using additional rules as well to hide extentions.

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteRule ^([^\.]+)$ $1.html [NC,L]
Était-ce utile?

La solution

You are using absolute paths, but /mysite/ isn't the document root, so that won't work. Remove the leading slashes to use relative paths and you should be good.

RewriteRule ^article/([0-9]+) mainarticle?article_id=$1 [L]

As it's an internal redirect you can also safely add the .php extension in case you know that's the file you are targeting, this would avoid an additional rewrite for the missing extension.

... mainarticle.php?article_id=$1 [L]
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top