Apache重写规则正则表达式

Apache重写规则正则表达式

问题描述:

我想写一个重写规则来重定向我的新webhelp系统中的文件(这是一个独立的网站)。 我有两件事情我尝试考虑 - 我只想重定向http://www.mydomain.com/webhelp文件夹中的文件。 我需要改变的.html到底为.htm ...... 我管理本身通过​​匹配http://www.mydomain.com/webhelp找到每个规则,但 当我尝试它打破了重写COND ...Apache重写规则正则表达式

基本上,其 http://www.mydomain.com/webhelp/hello.htmlhttp://www.mydomain.com/webhelp/hello.htm 不改变 http://www.mydomain.com/index.html

会很感激的任何帮助。 谢谢!

您需要使用反向引用。喜欢的东西:

RewriteRule ^www/webhelp/(.*)[.]html([#])(.*)[.]html$ www/webhelp/$1.htm$2$3.htm 
RewriteRule ^www/webhelp/(.*)[.]html$ www/webhelp/$1.htm 
+0

嗨Gillyspy,您的帮助表示感谢。它没有工作,我认为这是因为它看起来URL可能会更复杂一些,如下所示:http://www.mydomain.com/webhelp/webframe.html#advanced_improv.html – Yanipan 2013-05-06 04:49:53

+0

这意味着您需要重写这两个'.html'到'.htm'中?有多少可能?我上面重写的两条规则呢? – gillyspy 2013-05-06 14:31:18

如果你把一个.htaccess文件在您webhelp文件夹下面,它应该达到你在找什么:

RewriteEngine on 

RewriteBase /webhelp/ 
RewriteRule ^(.*).html$ $1.htm [R=301,L] 
+0

这是一个更完美的版本,完全相同的东西。如果您不介意的话,请编辑现有的文章进行打磨,而不是发布新的答案或添加评论。 – gillyspy 2013-05-06 14:34:55

+0

是的,谢谢你的评论,你是对的。我现在就试试这个,让你知道。谢谢你的时间:) – Yanipan 2013-05-08 14:00:37