开发者

.htaccess url rewrite - remove .php remove www. convert ?id=10 to /10

As the title says开发者_StackOverflow中文版, I need a quite complex url rewrite mechanism for a web-app as .htaccess rule. I've searched quite a lot now and tried hundred of different rewrite rules.

So, basically this is what I need:

User goes to: http://www.site.com/product.php?id=12

Server should redirect to: http://site.com/product/12

Once thing to mention:

not all pages do append id's.

So I also have: http://www.site.com/some/page.php

which then should redirect to: http://site.com/some/page

or from http://site.com/anotherone.php to http://site.com/anotherone

You help is much appreciated and thank you a lot in advance for you help!


RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)\.php$ http://%1/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)\.php\?id=([0-9]+)$ http://%1/$1/$2 [R=301,L]


I supose that you, previously have this mod_rewrite rule active:

Users goes to http://site.com/product/12 and in the browser is showed this URL, and internaly, and only internaly, server serve http://www.site.com/product.php?id=12

Put the first RewriteCond and Rule this:

   RewriteCond %{ENV:REDIRECT_STATUS} !200
   RewriteRule ^(\w+)\.php\?id=(\d*)$ /$1/$2 [R=301]

And add another to remove the .php when ends with .php

   RewriteCond %{ENV:REDIRECT_STATUS} !200
   RewriteRule ^(\w+)\.php$ /$1 [R=301]
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜