ホームページ  >  記事  >  バックエンド開発  >  .htaccess URL の特殊文字に関連する問題

.htaccess URL の特殊文字に関連する問題

WBOY
WBOYオリジナル
2016-06-13 13:13:261064ブラウズ

.htaccess URL
RewriteRule の特殊文字に関する問題 ^(r|R)(e|E)(g|G)/step2/(.*)/?$ do.php?ac=6a538ae003e30eacbd5b0c1f1d18aa50&op=active&hash= $4

http://127.0.0.1/reg/step2/3635DBp6n66a0oRy3cvN3OvtCoPu5I2gJU2S8MyQLppdkp4wma6wjjaTBSYp%2FT189%2BJz が
http://1 として解析できることを期待して、.htacess ファイル内で上記のルールを定義することもできます。 27.0.0。 1 /do.php?ac=6a538ae003e30eacbd5b0c1f1d18aa50&op=active&hash=3635DBp6n66a0oRy3cvN3OvtCoPu5I2gJU2S8MyQLppdkp4wma6wjjaTBSYp%2FT189%2BJz

実行中問題があるようです。ハッシュ パラメータに特殊な記号が含まれているため、正しく解析できません。「オブジェクトが見つかりません!」と表示されます。
http://127.0.0.1/reg/step2/3635DBp6n66a0oRy3cvN3OvtCoPu5I2gJU2S8MyQLppdkp4wma6wjjaTBSYp/T189+Jz を直接入力すると(つまり、/ や + などの特殊記号は urlencode を通さない)解析できますが、この場合つまり、ハッシュ内のパラメータを元のパラメータに戻すことはできません。 (ハッシュパラメータの2つの値は暗号化されてカスタム関数を通過し、そのうちの2つの値はデコード関数を呼び出すことで復元できます)


---- --解決策--- ------------------
urlencode()

データを受信した後、urldecode() は復号化関数を呼び出します。
------解決策---------
^(r|R)(e|E ) (g|G)/ どうしてこうなるのでしょう。ダイレクト[NC]
------解決策------------------
うまくいかない場合は、
$url = ' xxx';
$url = urlencode(str_replace('/','!',$url));
....
データ受信時
$ url = urldecode(str_replace('!','/',$url));

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。