htaccess rewrite的问题

ralix 2010-02-05 06:56:15
各位大师,请教一下,

我想把:
http://www.mydomain.com/something1/something1.html
http://www.mydomain.com/something2/something2.html
301转向到:
http://www.mydomain.com/something1
http://www.mydomain.com/something2

something1,something2的位置可能是数字,字母,还可能带有横杠-,

非常非常感谢!!
...全文
179 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ralix 2010-02-09
  • 打赏
  • 举报
回复
还是没有解决。。。。。
ralix 2010-02-07
  • 打赏
  • 举报
回复
zjerryj大哥您好,
您给我写的rewrite还是不能工作,
RewriteRule ^((.*?/)*)(.*?)/\3\.html$ /$1$3 [R]
我加上之后:
/china/china.html 并不会跳转到/china
/china/bejing/beijing.html 也并不会跳转到/china/bejing
而是没有反应。
rewrite我确定是打开的,因为wordpress本身的rewrite工作正常。
麻烦您再看一下吧。。
张吉Jerry 2010-02-06
  • 打赏
  • 举报
回复
确定rewrite module已经加载,并且执行了RewriteEngine On
可以写一个简单的重写规则做实验,比如:
RewriteEngine On
RewriteRule ^abc\.htm$ /def.php [R=301]
我的环境是winxp+apache2.2,测试下来符合你的需求,且URL会变化。
PRINCE_LF 2010-02-06
  • 打赏
  • 举报
回复

RewriteRule /([a-zA-Z0-9]+) /$1/$1\.html
不知道对不对,不过我想这样很容易转错,除非你的网站内的文件很少,因为http://www.mydomain.com/something1
属于根目示下

一般转义后,会故意加多一个伪文件夹来区别文件,例如:加多了一个伪文件夹list
RewriteRule /web/list/([0-9]+)\.html /web/list\.html\?action=listplay&id=$1

例如:http://www.skyhope.cn/web/list/125.html
ralix 2010-02-05
  • 打赏
  • 举报
回复
rewrite URL也是可以变化的,我见过,只是不知道怎么写。

上面zjerryj大哥的rewrite我试了,的确没有反应啊。

我加上了[R=301],但检测了也是200,不是301。
helloyou0 2010-02-05
  • 打赏
  • 举报
回复
用rewrite, url不会变化,
要变的话用楼上的header
ralix 2010-02-05
  • 打赏
  • 举报
回复
您好,我现在的情况比较特殊,

/china 与 /china/china.html 两个页面的内容其实是一样的。

我现在是想只保留第一种形式,

但程序里有很多地方又会直接链接到第二种形式,

所以才需要跳转。

所以我觉得用rewrite会比较好,麻烦您再想想办法,谢谢了!!
libojacky 2010-02-05
  • 打赏
  • 举报
回复
可以在php中写的
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://www.mydomain.com/something1');//根据参数跳转
exit();
ralix 2010-02-05
  • 打赏
  • 举报
回复
楼上大哥您好,好像不行啊,加上之后没有反应
我希望是URL也要变化成跳转后的样子。
最好是301。

再次感谢!
张吉Jerry 2010-02-05
  • 打赏
  • 举报
回复
RewriteRule ^((.*?/)*)(.*?)/\3\.html$ /$1$3 [R]
ralix 2010-02-05
  • 打赏
  • 举报
回复
哦,不好意思,可能没说清楚,我再补充一下:

http://www.mydomain.com/something1/something1.html
跳转到:
http://www.mydomain.com/something1

也就是说:/something1/something1.html 必须是/的前后这两个词完全一样才跳转,否则就不跳转。
比如:
/china/china.html 跳转到:/china
/china/beijing.html 则不跳转。

再比如:
/china/beijing/beijing.html 转到:/china/beijing
/china/beijing/city.html 则不跳转。

可能有很多层,如:/china/beijing/city/street/street.html 需要跳转。

再次感谢各位大哥帮帮忙!!

张吉Jerry 2010-02-05
  • 打赏
  • 举报
回复
RewriteEngine On
RewriteRule ^(.*?)/.*?\.html$ /$1 [R]

但是有个问题,http://www.mydomain.com/something1/something2.html是跳转到http://www.mydomain.com/something1还是http://www.mydomain.com/something2?我写的是跳转到前者。
garcon1986 2010-02-05
  • 打赏
  • 举报
回复
不懂~ 帮顶

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧