2

基本的なことはできますが、htaccessを使用してURLを書き換えるということになると、私はかなり環境に配慮しています。

この場合、ベンダーからスクリプトの1つに一連のクエリ文字列が返されます。'http'または'https'を含むURLが含まれている場合を除いて、これはすべて問題ありません。それを検出すると、Apacheは403Forbiddenエラーをスローします。クエリ文字列の「http」部分を何かに書き換えるRewriteRuleを作成して、Apacheのルールを超えることができると思いました。

これは最終的にクライアントのマシンにインストールされるため、サーバー設定を変更することはできません。

URLの例は次のようになります。

http://mysite.com/gocardless_confirm.php?resource_uri=https%3A%2F%2Fsandbox.gocardless.com%2Fapi%2Fv1%2Fbills%2F07F56ERHRT

これが私が使おうとしていた設定です:

RewriteCond ${QUERY_STRING} ^(.*)$resource_uri=http^(.*)$
RewriteCond %{REQUEST_URI} ^gocardless_confirm.php
RewriteRule ^(.*)$ gocardless_confirm.php?$1resource_uri=hllp$2 [L]

この部分を書き直して、スクリプトに簡単にアクセスできるようにするにはどうすればよいですか?

ありがとう!

4

1 に答える 1

0

試す:

RewriteCond %{QUERY_STRING} ^(.*)resource_uri=http(.*)$
RewriteRule ^gocardless_confirm.php$ gocardless_confirm.php?%1resource_uri=hllp%2 [L]

RewriteCond のサブパターンは、RewriteRule で参照%#されます。
^パターンが照合されるホール文字列の始まりです。
$はその終わりに一致します。

于 2013-05-27T11:49:59.343 に答える