2010-10-04 2 views
0

Я приземлился с незавидной задачей разместить сайт в прямом эфире сегодня, чтобы узнать, что он не работает на Apache, а вместо этого использует Zeus. Теперь это довольно грубо нарушает мой mod_rewrite-скрипт.Url rewriting для Zeus - help regex

Его простой сценарий, который я переписал в формат Zeus:

RewriteEngine on 
RewriteRule !404.php$ blog/404.php [L] 

становится

match URL into $ with ^/blog/(.*)   
if matched set URL=/blog/404.php 

Однако недостатком является то, что в то время как я повернулся mod_rewrite в каком-нибудь из дочерних каталогов (например, css, изображения и т. д.) Я не могу сделать это в Зевсе.

Играли с регулярным выражением, чтобы попытаться получить указанное выше регулярное выражение, чтобы исключить любые совпадения для/blog/css/or/blog/images, но не повезло.

Надеюсь, что кто-то может помочь мне!

Редактировать. В настоящее время работает над этим регулярным выражением ...

^(?=/blog/)((?!css/|images/|js/).)*$ 

Так что это должно соответствовать какой-либо связи с/блог/в, но исключить тех, с/блог/KSS,/блог/Js и/блог/изображений. Но это does not> <

ответ

0

Хорошо, попробовав много причудливого регулярного выражения, я пошел с KISS и придумал это. Уверен, что это помогает кому-то

match URL into $ with ^/blog/(.*)$ 
if matched 
match URL into $ with ^/blog/css/(.*)$ 
if not matched 
match URL into $ with ^/blog/images/(.*)$ 
if not matched 
match URL into $ with ^/blog/js/(.*)$ 
if not matched 
    set URL=/blog/404.php 
endif 
endif 
endif 
endif 
0

Я понятия не имею, что Зевс переписывает (я даже не слышал о продукте), но до тех пор, пока нет ответа от опытного пользователя: Согласно this blog post, можно установить правила в Зевсе.

Что-то вдоль этих линий мог бы работы, чтобы отключить перезапись в/блог/KSS:

match URL into $ with ^/blog/css/(.*)   
if not matched 

    ... your 404 rewrite rule here 

endif; 

это догадки, но если я понимаю синтаксис правильно это shoudln't быть слишком далеко.

+0

Это работает и будет исключать файлы внутри/blog/css, но он ловит каждый другой файл на сайте. Я действительно нуждаюсь в регулярном выражении, которое соответствует любым файлам внутри/blog/кроме тех, что находятся внутри/blog/css /,/blog/images/and/blog/js / – DMA