2

私の小さな問題で私を助けてくれることを願っています:

次のような URL があります。

www.blabla.com/images/q2uj89j2fq89hf943ghf74ßgq3789fg43/blue.jpg

「images」フォルダー内に、文字列「images/」とそれに続く「/」の間のすべてを GET 変数として取得する PHP Skript があります。だから、このようなもの:

www.blabla/images/script.php?param=q2uj89j2fq89hf943ghf74ßgq3789fg43

現在、次のhtaccessファイルがあります。

Options +FollowSymlinks
RewriteEngine on
RewriteRule  ^(.*)$ script.php?param=$1 [QSA,L]

しかし、これで私は次のようなものを得ています:

www.blabla/images/script.php?param=q2uj89j2fq89hf943ghf74ßgq3789fg43/blue.jpg

そして明らかに、私は次まですべてを取得したいだけです /

前もって感謝します

4

1 に答える 1

2

.任意の文字が一致することを許可し、文字列の最後まで一致することを$ 明示的に示します。

の代わりに否定文字クラスを使用して、.を削除できます$。否定された文字クラスは、スラッシュ (文字クラスが否定されたマーク)を除くすべての文字と一致します。^

RewriteRule  ^([^/]*) script.php?param=$1 [QSA,L]

正規表現の繰り返しはデフォルトで貪欲であるため、これは可能な限り多くの文字を取り込みます。それは次のスラッシュまでのすべてです。

于 2012-10-29T19:27:15.543 に答える