2016-06-18 16 views
0

私はPHPで簡単にリダイレクトツールを作成しています。連想配列のそれぞれのURLにマップされたコードを格納し、このコードを入力した誰かをURLにリダイレクトします。Apache mod_rewrite:既存のファイルのクエリ文字列にパスを書き換えます。

私は入力文字列(変数の名前と値、コード)を取得するためにクエリ文字列を使用していますが、リダイレクト部分をPHPで動作させる方法はすでに分かっています。問題は、ユーザーに疑問符、変数名、等号を入力させたくないということです。 PHPがリダイレクトを処理できるように、単にクエリ文字列に変換されるパスを入力するだけです。

パス(任意のURLパス)を既存のファイルのクエリ文字列に変換する方法が不思議でした。私はスタックオーバーフロー(.htaccess - Rewrite query string and redirect to directory)でかなり簡単に反対の作業を見つけることができましたが、既存のファイルのクエリ文字列に任意のURLパス(ディレクトリに存在しない)を渡すことができるようにしたいと思います。私が望むものの例を見つけましたが(URL rewrite for converting path to querystring)、それは複数のクエリ文字列のためのものでした。この場合、必要なものは1つだけです。最後に私が参照した質問はうまく答えられたとは思わない。

は、どのように私は私のPHPファイル内のクエリ文字列を解析することができるように、.htaccessファイルを使用して

https://www.example.com/r/index.php?r=blahblahblah 

https://www.example.com/r/blahblahblah 

をリダイレクトすることができますか?このような

答えて

0

何か:このURLに

RewriteRule ^(.*)$ index.php?r=$1 [NC,L,QSA] 

example.com/r/blahblahblahのindex.phpから

print_r($_GET); 

はこれを返します:

Array ([r] => blahblahblah) 

(これを言及するために、編集が.htaccessファイルは/ Rのディレクトリ内にあるとみなされます)

+0

ありがとうございました!これはより簡潔な答えで、私の場合にはより適していたので、これを正しいとマークします。 – jeffw

0
RewriteEngine On 
RewriteRule ^r/([a-zA-Z0-9]+)$ /r/index.php?r=$1 
+0

ありがとう、これは私が探していたものでした! "/ r"ディレクトリに.htaccessが必要でしたので、代わりにこのファイルを書きました: 'RewriteRule ^(a-zA-Z0-9 +)$ index.php?r = $ 1' – jeffw

関連する問題