0

今日、サイトを公開して、Apacheで実行されていないことを確認するだけで、代わりにZeusを使用しているといううらやましい作業に着手しました。これで、mod_rewriteスクリプトがかなり乱雑に壊れます。

私がZeus形式に書き直したその単純なスクリプト:

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

になります

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

ただし、欠点は、一部の子ディレクトリ(css、imagesなど)でmod_rewriteをオフにしたのに対し、Zeusではこれを実行できないことです。

/ blog /css/または/blog/ imagesの一致を除外するために、上記の正規表現を取得するために正規表現をいじってみましたが、運がありませんでした。

誰かが私を助けてくれることを願っています!

編集。現在、この正規表現に取り組んでいます...

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

したがって、これは/ blog /のリンクと一致する必要がありますが、/ blog / css、/ blog / js、および/ blog/imagesのリンクは除外します。しかし、そうではありません> <

4

2 に答える 2

0

Zeusの書き換えについてはわかりませんが(製品について聞いたことがありません)、経験豊富なユーザーからの回答がない限り、このブログ投稿によると、Zeusにルールをネストすることは可能です。

これらの線に沿った何かが/blog/cssでの書き換えをオフにするために機能する可能性があります。

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

  ... your 404 rewrite rule here

endif;

これは知識に基づいた当て推量ですが、構文を正しく理解していれば、それほど遠くないはずです。

于 2010-10-04T13:25:36.843 に答える
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
于 2010-10-08T10:16:25.443 に答える