Diazo + Apache + mod_transform:テーマ `/`は他のパスとは異なります

私は、 Diazo (以前のXDV)を使用して、Apacheと mod_transform_html 。私は TransformSet ディレクティブを Location ディレクティブの中に置くことで、複数の異なるテーマを使用できることを期待していました。


   TransformSet /themes/blog.xsl



   TransformSet /themes/main.xsl

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

RewriteRule ^/$ /main/ [R]


   TransformSet /themes/main.xsl

これは動作しますが、むしろ/を基にしたこのコンテンツをホストすることができます。

ですから、/に適用される変換を上書きする方法はありますか?この種のことは、他のApache設定ディレクティブ( ProxyPass など)で動作するようです。

0

1 答え

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


  <theme href="blog.html"/>
  ...


  <theme href="main.html"/>
  ...

This reminds me I should add an if-not-content so you can use a CSS selector there. For more, see: http://diazo.org/advanced.html#multiple-conditional-themes

ルートテーマの代わりにLocationMatchを使用するのは簡単ですが、次のようになります。


   TransformSet /themes/main.xsl

これにより、両方のTransformSetディレクティブが同じ要求に適用されることがなくなります。

0
追加された
私は実際に if-content というディレクティブを試していましたが、物事が乱雑になるように見えました。変換を別々のファイルに保存する方がはるかに管理しやすくなります。 LocationMatch ソリューションを試してみましょう。
追加された 著者 larsks,
サブパス上の TransformSet が一般的なApacheの/の設定を上書きしないという事実はありますか?あるいは、これは mod_transform で修正できますか?
追加された 著者 larsks,
私はそれが正しいかどうかわからないが、このパッチは、 TransformSet は、上位パスの1つのセットよりも優先されます。
追加された 著者 larsks,
条件は、ルールの多くを共有する密接に関連したテーマの場合、かなりうまくいくようです。標準的なページと表のページ。完全に無関係なページでは、それは乱雑になります。 Deliveranceはこれを 'ページクラス'で解決しようとしました( packages.python .org/Deliverance /&hellip; )おそらく、に変換するものとともに、Diazoに似たものが必要になるでしょう。
追加された 著者 Laurence Rowe,
おそらく、mod_transformで(別の方法でディレクティブを定義することによって)修正することができると思います。私は確かにこれについてのパッチを見ていきます。
追加された 著者 Laurence Rowe,