如何使用RewriteRule删除一部分网址

时间:2017-10-26 10:24:31

标签: apache mod-rewrite

我找到了answer on StackOverflow Fry,它似乎回答了我的问题,但我无法让它发挥作用。

我有这个网址:

https://www.mywebsite.com/section1/section2/exercise/someurl

我想改写成:

https://www.mywebsite.com/section1/section2/someurl

我尝试了以下内容:

RewriteRule ^(.\*)/exercise/(.\*)$ https://%{SERVER_NAME}/$1/$2 [NC,R=301,L]

RewriteRule ^(.\*)/exercise/(.\*)$ $1/$2 [NC,R=301,L]

但是URL没有被重写。我已RewriteEngine开启,我正在使用RewriteRule用于其他规则并且它们正常运行。

这是link to the complete .htaccess file

有没有人有任何建议?感谢。

1 个答案:

答案 0 :(得分:2)

看起来正则表达式与URL不匹配。

您正尝试将实际星号与此\*匹配。

你想要的是匹配所有内容,以便.匹配第一个字符。添加+,现在它匹配所有内容:.+

\/

这样逃避正斜杠也是一个好主意

尝试一下:^(.+)\/exercise\/(.+)$