Htaccess正则表达式排除除一个字符串之外的所有内容

时间:2014-03-04 19:43:01

标签: regex .htaccess

我已完成此操作:http://rubular.com/r/AHI15Tb4ju,它与第二个网址(http://gamempire.localhost.it/news/tomb-pc)匹配,但我想要排除该网址并匹配所有没有单词的内容" news / "在内部(但同时以我指定的方式结束)。

怎么做? 基本上,我想只匹配第三个网址(http://gamempire.localhost.it/tomb-pc)。

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以使用以下规则:

RewriteEngine On

RewriteCond %{REQUEST_URI} !/news/
RewriteRule -(?:pc|ps2|ps3|ps4|xbox-360|xbox-one|xbox|wii-u|wii|psp|ps-vita|ds|3ds|iphone|ipad|android|playstation)(.*)$ / [L,R]

由于我不知道任何操作部分,我只是将这些匹配的URI模式重定向到/,您可以根据需要进行更改。

答案 1 :(得分:0)

尝试使用:

^((?!news).)*-(?:pc|ps2|ps3|ps4|xbox-360|xbox-one|xbox|wii-u|wii|psp|ps-vita|ds|3ds|iphone|ipad|android|playstation)(.*)$

应该注意的是,我尝试尽可能少地修改原始模式,假设你最后也需要(。*),即使看起来这对你的目的来说是不必要的,并且会匹配字符串,如 “http://gamempire.localhost-pc.it/tomb”和“http://-pcgamempire.localhost.it/tomb”。