有如下的一些网址
http://www.host.com/a/axxxx
http://www.host.com/b/bxxxx
xxxx为4个小写字母或者数字的组合(最后一个/后面总共是5位)
我想让凡是最后/后是5位的地址都变成下面的形式
http://www.host.com/axxxx
http://www.host.com/bxxxx
apache的rewrite能做到吗?
如果能,规则要怎么写?
小弟刚用apache,对rewrite不熟,希望大家帮忙。
13 个解决方案
#1
陪LZ学习:)
#2
apache不熟,WIN2003知道怎么做,楼下会的继续。
#3
不熟一同学习了。
#4
试试这个:
RewriteRule ^(a|b)/(a|b)(\w{4,4})$ /$2$3
RewriteRule ^(a|b)/(a|b)(\w{4,4})$ /$2$3
#5
刚才放.htaccess里用PHP测了一下,应该可以.
#6
http://msdn.microsoft.com/zh-cn/library/ms972974.aspx#XSLTsection128121120120
看这里,里面介绍很详细
看这里,里面介绍很详细
#7
你这个是输入http://www.host.com/a/axxxx访问http://www.host.com/axxxx吧,
和我要的结果是相反的
#8
freewing:
受你的启发,我自己倒是把这个规则写出来了。
<IfModule mod_rewrite.c>
RewriteEngine On
#http://www.host.com/axxxx => http://www.host.com/a/axxxx
RewriteRule ^(\w{1,1})(\w{4,4})/{0,1}$ /$1/$1$2 [QSA,L]
</IfModule>
现在又有另一个问题了,页面从http://www.host.com/axxxx 转到 http://www.host.com/a/axxxx后,浏览器的地址变成了http://www.host.com/a/axxxx,如何让浏览器中显示的地址不变呢,也就是还是显示为http://www.host.com/axxxx
受你的启发,我自己倒是把这个规则写出来了。
<IfModule mod_rewrite.c>
RewriteEngine On
#http://www.host.com/axxxx => http://www.host.com/a/axxxx
RewriteRule ^(\w{1,1})(\w{4,4})/{0,1}$ /$1/$1$2 [QSA,L]
</IfModule>
现在又有另一个问题了,页面从http://www.host.com/axxxx 转到 http://www.host.com/a/axxxx后,浏览器的地址变成了http://www.host.com/a/axxxx,如何让浏览器中显示的地址不变呢,也就是还是显示为http://www.host.com/axxxx
#9
顺便学习。顶顶贴。
#10
学习了
#11
好久没有用php了
#12
学习学习
#13
对比下楼顶的问题,貌似有点矛盾...
更不明白楼主想干啥了... 楼主可以再仔细理解下“rewriter”
假如理解楼主的真实地址是http://www.host.com/a/axxxx 想让人通过http://www.host.com/axxxx来访问,那就看看我最早回答的。
假如理解楼主的真实地址是http://www.host.com/axxxx 想让人通过http://www.host.com/a/axxxx来访问,那就是你自己写的。
#1
陪LZ学习:)
#2
apache不熟,WIN2003知道怎么做,楼下会的继续。
#3
不熟一同学习了。
#4
试试这个:
RewriteRule ^(a|b)/(a|b)(\w{4,4})$ /$2$3
RewriteRule ^(a|b)/(a|b)(\w{4,4})$ /$2$3
#5
刚才放.htaccess里用PHP测了一下,应该可以.
#6
http://msdn.microsoft.com/zh-cn/library/ms972974.aspx#XSLTsection128121120120
看这里,里面介绍很详细
看这里,里面介绍很详细
#7
你这个是输入http://www.host.com/a/axxxx访问http://www.host.com/axxxx吧,
和我要的结果是相反的
#8
freewing:
受你的启发,我自己倒是把这个规则写出来了。
<IfModule mod_rewrite.c>
RewriteEngine On
#http://www.host.com/axxxx => http://www.host.com/a/axxxx
RewriteRule ^(\w{1,1})(\w{4,4})/{0,1}$ /$1/$1$2 [QSA,L]
</IfModule>
现在又有另一个问题了,页面从http://www.host.com/axxxx 转到 http://www.host.com/a/axxxx后,浏览器的地址变成了http://www.host.com/a/axxxx,如何让浏览器中显示的地址不变呢,也就是还是显示为http://www.host.com/axxxx
受你的启发,我自己倒是把这个规则写出来了。
<IfModule mod_rewrite.c>
RewriteEngine On
#http://www.host.com/axxxx => http://www.host.com/a/axxxx
RewriteRule ^(\w{1,1})(\w{4,4})/{0,1}$ /$1/$1$2 [QSA,L]
</IfModule>
现在又有另一个问题了,页面从http://www.host.com/axxxx 转到 http://www.host.com/a/axxxx后,浏览器的地址变成了http://www.host.com/a/axxxx,如何让浏览器中显示的地址不变呢,也就是还是显示为http://www.host.com/axxxx
#9
顺便学习。顶顶贴。
#10
学习了
#11
好久没有用php了
#12
学习学习
#13
对比下楼顶的问题,貌似有点矛盾...
更不明白楼主想干啥了... 楼主可以再仔细理解下“rewriter”
假如理解楼主的真实地址是http://www.host.com/a/axxxx 想让人通过http://www.host.com/axxxx来访问,那就看看我最早回答的。
假如理解楼主的真实地址是http://www.host.com/axxxx 想让人通过http://www.host.com/a/axxxx来访问,那就是你自己写的。