-1

Apache とmod_transform_htmlを使用して、Diazo (以前の XDV) を使用していくつかの内部 Web サイトをテーマにしています。次のように、ディレクティブ内にディレクティブを配置することで、複数の異なるテーマを利用できることを望んでいました。TransformSetLocation

<Location /blog/>
   TransformSet /themes/blog.xsl
</Location>

<Location />
   TransformSet /themes/main.xsl
</Location>

残念ながら、TransformSetディレクティブ for/が常に優先されるようです。/からコンテンツを移動し/mainて追加することで、当分の間これを解決しました。

RewriteRule ^/$ /main/ [R]

<Location /main/>
   TransformSet /themes/main.xsl
</Location>

これは機能しますが、/.

それで...に適用された変換をオーバーライドする方法はあります/か? この種のことは、他の Apache 構成ディレクティブ (例: ProxyPass) で機能するようです。

4

1 に答える 1

0

mod_transform のパラメーター サポートを完了するまでには至りませんでしたが、ページ コンテンツに基づいてテーマを選択できる場合は、次のようなものを使用できます。

<rules css:if-content="#blog">
  <theme href="blog.html"/>
  ...
</rules>
<rules if="not(//*[@id='blog']">
  <theme href="main.html"/>
  ...
</rules>

これは、そこで CSS セレクターを使用できるように、if-not-content を追加する必要があることを思い出させてくれます。詳細については、http: //diazo.org/advanced.html#multiple-conditional-themesを参照してください。

次のように、ルート テーマの代わりに LocationMatch を使用する方が簡単かもしれません。

<LocationMatch "/(?!blog)">
   TransformSet /themes/main.xsl
</LocationMatch>

これにより、両方の TransformSet ディレクティブが同じリクエストに適用されるのを回避できます。

于 2011-10-27T20:44:02.577 に答える