0

私はこれをReddit(r / learnprogramming)に投稿し、そこにいる誰かが私にPMをして、ここに来るように言ったので、ここにいます!

私は正規表現を学ぼうとしてきましたが、それでもそれらを吸います。パターンマッチングを把握するのが大変です。私は他のOOP言語でしっかりしているので、正規表現を学ぶと思いましたが、それは私を回避するだけです。

EditPad Proをダウンロードしたので、http://www.regular-expressions.info/tutorial.htmlが示すように練習できます。バルクテキストに一致する式を取得できますが、URLを解析しようとしていますが、欠落し続けています。

これが私がやろうとしていることです。私は概念実証研究として自分のパーマリンク.htaccessファイルを書いているので、これを将来のサイトで使用できることを願っています。

URLから次の動的コンテンツを返す必要があります。

http://www.domain.com/またはhttp://domain.com/またはdomain.com/以外のすべてが必要です:(
新しいアカウントの制限のため、http://の後にスペースを追加しています)

http:// www.domain.com/asdjh324hj.jpg
http:// www.domain.com/asa45s.png
http:// www.domain.com/aser24hj.gif/
http:// www.domain.com/ wer234dsfa /
http:// www.domain.com/k3kjk4
http:// www.domain.com/k3kasd4/

一致した部分は、次の場所に追加されます。

http:// www.domain.com/some_dir/som_subdir/some_file.php?querystring=$1

しかし、結果にこれらのURLは必要ありません。

http:// www.domain.com/some_dir/some_file.php
http:// www.domain.com/some_dir/some_subdir/some_file.html

そして、image_dir内の画像へのホットリンクを防ぐ必要があります。

http:// www.domain.com/image_dir/some_dir/some_subdir/some_image.jpg(またはpng、gifなど)

ホットリンクされた画像は、渡された画像をクエリ文字列として含むページにリダイレクトされます。

では、これを取得するためにどのRewriteRule正規表現を設定しますか?RewriteRulesとフラグを理解し、一致した結果を変数に入れるなど、実際の結果を取得するためにどの正規表現を書くべきかがわかりません。

これがRewriteRulesにとって複雑すぎる場合は、ここで苦労しているのでお知らせください。

通常、私はこれらをPHPで実行し、次のように開始します
。.com /[a-zA-Z0-9-_。]+([^
/] +)/?$
次に、適切な'olサブストリングとチェックを実行します。それはそれをハッキングして死に至らしめるので、私はもっとうまくやるべきです!

私は現在、regular-expressions.infoチュートリアルを実行しており、進歩を遂げていますが、間違ったものも取得し続けています。

あなたが私の方法を送ることができるどんな助けにも感謝します!

更新:私はたくさんの助けを借りてすべてを解決することができました、そしてここでもっと議論しました: Mod_Rewrite条件はホットリンクに役立ちますが、ローカルリクエストを許可します

4

1 に答える 1

0

http://www.domain.com/またはhttp://domain.com/またはdomain.com/以外のすべてが必要です。

RewriteCond %{REQUEST_URI} !^/$

しかし、結果にこれらのURLは必要ありません。

RewriteCond %{REQUEST_URI} !^/some_dir/

一致した部分は、次の場所に追加されます。

RewriteRule ^(.*)$ /some_dir/som_subdir/some_file.php?querystring=$1 [L]

したがって、全体としては次のようになります。

RewriteCond %{REQUEST_URI} !^/$
RewriteCond %{REQUEST_URI} !^/some_dir/
RewriteRule ^(.*)$ /some_dir/som_subdir/some_file.php?querystring=$1 [L]

これにより、のようなものをリクエストするhttp://www.domain.com/asa45s.htmlと、内部的にに書き換えられsome_dir/som_subdir/some_file.php?querystring=asa45s.htmlます。ホットリンクビットについて:

RewriteCond %{REQUEST_URI} ^/image_dir/
RewriteCond %{REQUEST_URI} \.(png|gif|jpe?g|bmp|ico)$ [NC]
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?domain.com/
RewriteRule ^(.*)$ /some_dir/som_subdir/some_file.php?querystring=$1 [L]

これにより、最初にリクエストが/image_dir/ディレクトリ内の何かに対するものであり、次にリクエストされたリソースがpng / gif / jpeg / bmp / ico拡張子で終わっていること、次にHTTPリファラー[sic]がで始まらないことhttp://www.domain.com/https://domain.com/または2.これらすべてが真の場合/some_dir/som_subdir/some_file.php、元のURIをquerystringパラメーターとして使用して要求をファイルに書き換えます。

于 2012-09-12T19:21:37.120 に答える