/ / Ommitting określonego folderu w przekierowaniu htaccess - regex, .htaccess, przekierowanie

Ommitting określonego folderu w przekierowaniu htaccess - regex, .htaccess, przekierowanie

Próbuję przekierować kilka plików pomocniczych do innego systemu wsparcia, z wyjątkiem plików, które mają folder software_updates w nich. Oto zasada, którą napisałem.

RewriteRule ^/support/.*(?!software_updates).*$ newurl_location [NC,L,R=301]

to wyklucza /support/software_updates/ ale nie /support/product/software_updates Próbuję wykluczyć dowolny adres URL, który ma aktualizację oprogramowania w dowolnym miejscu adresu URL po wsparciu.

Odpowiedzi:

0 dla odpowiedzi № 1

To powinno wystarczyć.

RewriteRule ^support/(?!.*software_updates).*$ newurl_location [NC,L,R=301]

1 dla odpowiedzi nr 2

Próbować:

RewriteRule ^/support/(?!.*software_updates) newurl_location [NC,L,R=301]

Nie mam pod ręką Apache do przetestowania go, ale powinien działać.


1 dla odpowiedzi nr 3

Przetestowałem to i wierzę, że tego właśnie szukasz (zwróć uwagę na zmiany w / i .* )

RewriteRule ^support/(?!.*?software_updates) newurl_location [NC,L,R=301]

Już prawie tam byłeś.

Po pierwsze, nie potrzebujesz inicjału /

Nie chcesz .*(?!software_updates).*, ponieważ to będzie pasować software_updates. Dlaczego? Gwiazdka-kropka zjada cały łańcuch, a następnie na końcu masz pewność, że oprogramowanie_updates nie jest następne. I oczywiście to prawda.