2017-04-06 6 views
0

私はApacheの設定で問題をデバッグしようとしていますが、RewriteMapを使用しているときにapacheの書き換えを実行できません。RewriteMapを使用している場合、Apache RewriteCondとRewriteRuleは正しいですか?

これは私は小さなスクリプトとカップルのHTMLページを提供し、これをテストするために/etc/apache2/map.txt

/21.html /1.html 
/22.html www.localhost/2.html 
www.localhost/23.html www.localhost/3.html 
/23.html?blabla=bla /4.html 

内のコンテンツです:

#!/bin/bash 

COUNTER=1 

while [ $COUNTER -lt 20 ]; do 
echo "<html> 
<body> 

<h1>PAGE NR $COUNTER</h1> 

<p>My first paragraph.</p> 

</body> 
</html>" > /var/www/$COUNTER.html 
let COUNTER=COUNTER+1 
done 

私はほとんどすべて試してみました私はforums/googleで見つかったバリエーションはありませんが、私はRewriteCondとRewriteRuleを動作させることができませんでした。

は、私は私のバーチャルホスト内の正しいセットアップを知らない:

RewriteEngine on 
RewriteMap map "/etc/apache2/map.txt" 
RewriteCond ??????? 
RewriteRule ??????? 

イム本当にわからないが、私はマップファイルからこれらすべてのdiferentのラインに合わせて、複数のRewriteCondとのRewriteRuleを持つべきだと思います。

また、マップファイルの値を使用して条件/ルールをどのように一致させるかはわかりません。いくつかの例では、人々は$ 1と$ 2を参照しています。

すべてのヘルプは本当に

答えて

0

ものは物事が働いて得た条件/ルールです感謝します

RewriteCond %{REQUEST_URI}     ^(/.*[^/])/?$ 
RewriteCond %{QUERY_STRING}  !.+ 
RewriteCond ${map:${lc:%1}|NOT_FOUND} !NOT_FOUND 
RewriteRule .+ ${map:${lc:%1}}?     [NC,L,R] 

RewriteCond %{REQUEST_URI}     ^(/.*[^/])/?$ 
RewriteCond %{QUERY_STRING}  ^.+ 
RewriteCond ${map:${lc:%{REQUEST_URI}?%{QUERY_STRING}}|NOT_FOUND} !NOT_FOUND 
RewriteRule .+ ${map:${lc:%{REQUEST_URI}?%{QUERY_STRING}}} [NC,L,R] 
関連する問題