开发者

Re-write userprofile URL (remove.html)

Any Ideas how to change remove .html in this mod-rewrite script Doesnt work if I remove ".html"

RewriteRule ^([^/]*)\.html$ /userprofile.php?member_id=$1 [L]

Works as

http://site.com/12.html
开发者_JAVA技巧

but wants to have it as

http://site.com/12

Thank you


To make the .html optional, put it in a group and use the ? quantifier:

RewriteRule ^([^/]*)(\.html)?$ /userprofile.php?member_id=$1 [L]

But as this pattern will now also match any single path segment, you should make it more specific to only match your specific URL path pattern. In this case \d+ instead of [^/]* would be a better choice:

RewriteRule ^(\d+)(\.html)?$ /userprofile.php?member_id=$1 [L]


MODIFIED: I have tested the following and they work on a CentOS server running Apache.

For directory rewriting:

RewriteRule ^/test/(.*)$ http://www.google.com [L,R]

That will redirect http://www.site.com/test to http://www.google.com.

For all files in a directory this will work:

RewriteRule ^/test/([^/]*)(.*)$ http://www.google.com [L,R]

That will redirect www.site.com/test/12.html or www.site.com/test/298.aspx or any other file in the "test" directory to www.google.com.

So this may be more what you are looking for:

RewriteRule ^/12/([^/]*)(.*)$ /userprofile.php?member_id=$1 [L,R]

ORIGINAL POST:

I believe this is what you are looking for:

RewriteRule ^([^/]*)(.*)$ /userprofile.php?member_id=$1 [L]

That is if you are trying to do the rewrite for files...

It will be slightly different if you want to do the rewrite against a directory.


You need to remove the backslash as well ("\.html").

0

上一篇:

下一篇:

精彩评论

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

最新问答

问答排行榜