こんにちは。私は自分の "URL Shortener"をコーディングし始めました。基本的な考え方はexample.com/12345を使用して別のURLにリダイレクトすることです。この "マッチング"は、.htaccessを使用して、(私たちにとって今は関係ない)ものをスクリプトに向けてリダイレクトすることによって行われます。302 .htaccess RedirectMatchの後に元のURLを取得することは可能ですか?
私の.htaccessファイルは、現在、次のようになります。
RedirectMatch 302 ^/\w{5}$ /redir.php
リダイレクトが正確に5の任意の文字列にマッチすると拡大しURLへの実際のリダイレクションが行わ私のPHPスクリプトに向けて送信します。唯一の問題は、元のURL、一致するものを変数にする正しい方法を見つけることができなかったことです。この問題が不足している設定から発信することができますので、もし全部が、最低限の知識で私が設定したVPS上で起こる追記として
($ _SERVER [「HTTP_REFERER」]は動作しません)、そして期待私の設定は100%正しいものではなく、標準によるものです。 EDIT:RedirectMatchからRewriteRuleに変更されても、動作しません。これはPARAM redir
をクエリ文字列として5文字の文字列を送信します
RewriteRule ^(\w{5})$ /redir.php?redir=$1 [R,L]
:あなたは、次のルールを使用することができます
RewriteRule ^\w{5}$ /redir.php [R,L]
は、代わりにbase62のようなものの代わりに、int型を使用して、データベースIDのような実用的なものにそれをデコードします。このライブラリはすべてそれを行います。 http://hashids.org/ –
さらに、10000〜99999のエントロピーはあまりありません。数字はトラバースするのが簡単です。 –
ああ、質問に答えるには、 '$ _SERVER ['REQUEST_URI']'を使用してください:/ –