What is the regex for this?
Match if string
- NOT ( ends in
.php
OR ends in.html
OR contains/
)
Thank you!
Edit: I need the NOT
part because the expression is to be used on an Apache mod rewrite, since I can't change the logic of mod_rewrite
to avoid the NOT
.
Edit: My initial effort was ([^/]+)(\.html)$(^\.php)$
- which is monstrously wrong
Apache mod_rewrite does support negation, according to this document.
In mod_rewrite, the NOT character ('!') is also available as a possible pattern prefix. This enables you to negate a pattern; to say, for instance: ``if the current URL does NOT match this pattern''. This can be used for exceptional cases, where it is easier to match the negative pattern, or as a last default rule.
So you should be able to do something like:
!^(.*?/.*|.*?\.(?:php|html)$)$
And that should match anything which does not contain / and does not end in .php or .html
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With