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]
有帮助吗?

解决方案

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]
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top