正则表达式不以字符串开头或不以字符串结尾

时间:2014-09-23 09:14:58

标签: regex .htaccess

我在正则表达式问题上迷失了。

我需要在htaccess文件中创建一个模式,以匹配不以

开头的路径

view 要么 不会以 (.oet|.ttf,..)

我可以制作视图部分,但不是结尾部分。

测试视图我有:

^(?!view)(.*)$

我试着测试不要像这样结束但是它不起作用:

^(.*)(?!.oet)$

我想要的最终测试应该是这样的:

^((?!view)(.\*))|((.\*)(?!.eot|.ttf|.otf|.woff))$

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

mod_rewrite使您可以灵活地使用`RewriteCond将其分成两个单独的匹配,这比一个复杂的正则表达式更易于维护。

你可以像这样使用它:

RewriteCond %{REQUEST_URI} !\.(eot|ttf|otf|woff)$ [NC]
RewriteRule ^((?!view).*)$ /view/$1 [L,NC]

答案 1 :(得分:0)

你需要一个消极的外观。

^(?!view).*?(?<!.eot|.ttf|.otf|.woff)$

演示:http://regex101.com/r/dP3gS3/2