Maison développement back-end tutoriel php .htaccess url中带有特殊字符的有关问题

.htaccess url中带有特殊字符的有关问题

Jun 13, 2016 pm 01:13 PM
hash url urlencode

.htaccess url中带有特殊字符的问题
RewriteRule ^(r|R)(e|E)(g|G)/step2/(.*)/?$ do.php?ac=6a538ae003e30eacbd5b0c1f1d18aa50&op=active&hash=$4
偶在.htacess文件中定义上面的规则,希望
http://127.0.0.1/reg/step2/3635DBp6n66a0oRy3cvN3OvtCoPu5I2gJU2S8MyQLppdkp4wma6wjjaTBSYp%2FT189%2BJz能被解析为
http://127.0.0.1/do.php?ac=6a538ae003e30eacbd5b0c1f1d18aa50&op=active&hash=3635DBp6n66a0oRy3cvN3OvtCoPu5I2gJU2S8MyQLppdkp4wma6wjjaTBSYp%2FT189%2BJz

现在运行的时候好像有点问题,hash参数中带有特殊符号,无法正确解析,提示Object not found!
如果直接输入http://127.0.0.1/reg/step2/3635DBp6n66a0oRy3cvN3OvtCoPu5I2gJU2S8MyQLppdkp4wma6wjjaTBSYp/T189+Jz(即/和+等特殊符号不经过urlencode)可以解析,但是这样一来,hash中的参数无法还原成原来的参数。(hash参数中有2个值经过一个自定义函数加密传递,调用解码函数可以还原其中的2个值)


------解决方案--------------------
urlencode()

接收数据后 urldecode() 再调用你的解密函数
------解决方案--------------------
^(r|R)(e|E)(g|G)/ 何必这样。直接[NC]
------解决方案--------------------
实在不行 就
$url = 'xxx';
$url = urlencode(str_replace('/','!',$url));
..........
接收数据的时候
$url = urldecode(str_replace('!','/',$url));

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Introduction à la fonction PHP — get_headers() : récupère les informations d'en-tête de réponse de l'URL Introduction à la fonction PHP — get_headers() : récupère les informations d'en-tête de réponse de l'URL Jul 25, 2023 am 09:05 AM

Introduction à la fonction PHP — get_headers() : Présentation de l'obtention des informations d'en-tête de réponse de l'URL : Dans le développement PHP, nous avons souvent besoin d'obtenir les informations d'en-tête de réponse de la page Web ou de la ressource distante. La fonction PHP get_headers() peut facilement obtenir les informations d'en-tête de réponse de l'URL cible et les renvoyer sous la forme d'un tableau. Cet article présentera l'utilisation de la fonction get_headers() et fournira quelques exemples de code associés. Utilisation de la fonction get_headers() : get_header

Comment obtenir votre identifiant Steam en quelques étapes ? Comment obtenir votre identifiant Steam en quelques étapes ? May 08, 2023 pm 11:43 PM

De nos jours, de nombreux utilisateurs Windows qui aiment les jeux ont accédé au client Steam et peuvent rechercher, télécharger et jouer à n'importe quel bon jeu. Cependant, de nombreux profils d'utilisateurs peuvent porter exactement le même nom, ce qui rend difficile la recherche d'un profil ou même la liaison d'un profil Steam à d'autres comptes tiers ou la participation à des forums Steam pour partager du contenu. Le profil se voit attribuer un identifiant unique à 17 chiffres, qui reste le même et ne peut être modifié à aucun moment par l'utilisateur, contrairement au nom d'utilisateur ou à l'URL personnalisée. Quoi qu'il en soit, certains utilisateurs ne connaissent pas leur Steamid, et il est important de le savoir. Si vous ne savez pas comment retrouver le Steamid de votre compte, pas de panique. Dans cet article

Pourquoi NameResolutionError(self.host, self, e) de e et comment le résoudre Pourquoi NameResolutionError(self.host, self, e) de e et comment le résoudre Mar 01, 2024 pm 01:20 PM

La raison de l'erreur est NameResolutionError(self.host,self,e)frome, qui est un type d'exception dans la bibliothèque urllib3. La raison de cette erreur est que la résolution DNS a échoué, c'est-à-dire le nom d'hôte ou l'adresse IP qui était. La tentative de résolution n'a pas pu être trouvée. Cela peut être dû au fait que l'adresse URL saisie est incorrecte ou que le serveur DNS est temporairement indisponible. Comment résoudre cette erreur Il peut y avoir plusieurs façons de résoudre cette erreur : Vérifiez si l'adresse URL saisie est correcte et assurez-vous qu'elle est accessible Assurez-vous que le serveur DNS est disponible, vous pouvez essayer d'utiliser la commande "ping" dans la ligne de commande pour tester si le serveur DNS est disponible Essayez d'accéder au site Web en utilisant l'adresse IP au lieu du nom d'hôte si vous êtes derrière un proxy

Comment utiliser l'encodage et le décodage d'URL en Java Comment utiliser l'encodage et le décodage d'URL en Java May 08, 2023 pm 05:46 PM

Utilisez url pour encoder et décoder la méthode de classe java.net.URLDecoder.decode(url, decoding format) decoder.decoding pour l'encodage et le décodage. Convertie en chaîne ordinaire, URLEncoder.decode(url, format d'encodage) transforme la chaîne ordinaire en chaîne au format spécifié packagecom.zixue.springbootmybatis.test;importjava.io.UnsupportedEncodingException;importjava.net.URLDecoder;importjava.net. Encodeur d'URL

Comment implémenter l'opération Redis Hash en php Comment implémenter l'opération Redis Hash en php May 30, 2023 am 08:58 AM

Opération de hachage //Attribuez des valeurs aux champs de la table de hachage. Renvoie 1 en cas de succès et 0 en cas d'échec. Si la table de hachage n'existe pas, la table sera créée en premier puis la valeur sera attribuée. Si le champ existe déjà, l'ancienne valeur sera écrasée. $ret=$redis->hSet('user','realname','jetwu');//Obtenir la valeur du champ spécifié dans la table de hachage. Si la table de hachage n'existe pas, renvoyez false. $ret=$redis->hGet('utilisateur','rea

Quelle est la différence entre HTML et URL Quelle est la différence entre HTML et URL Mar 06, 2024 pm 03:06 PM

Différences : 1. Différentes définitions, l'URL est un localisateur de ressources uniforme et le HTML est un langage de balisage hypertexte ; 2. Il peut y avoir plusieurs URL dans un HTML, mais une seule page HTML peut exister dans une URL. 3. HTML fait référence à ; une page Web, et l'url fait référence à l'adresse du site Web.

Conseils d'optimisation Scrapy : Comment réduire l'exploration des URL en double et améliorer l'efficacité Conseils d'optimisation Scrapy : Comment réduire l'exploration des URL en double et améliorer l'efficacité Jun 22, 2023 pm 01:57 PM

Scrapy est un puissant framework d'exploration Python qui peut être utilisé pour obtenir de grandes quantités de données sur Internet. Cependant, lors du développement de Scrapy, nous rencontrons souvent le problème de l'exploration des URL en double, ce qui fait perdre beaucoup de temps et de ressources et affecte l'efficacité. Cet article présentera quelques techniques d'optimisation de Scrapy pour réduire l'exploration des URL en double et améliorer l'efficacité des robots d'exploration Scrapy. 1. Utilisez les attributs start_urls et Allowed_domains dans le robot d'exploration Scrapy pour

Comment ajouter un préfixe d'URL à plusieurs contrôleurs SpringBoot Comment ajouter un préfixe d'URL à plusieurs contrôleurs SpringBoot May 12, 2023 pm 06:37 PM

Préface Dans certains cas, les préfixes du contrôleur de service sont cohérents. Par exemple, le préfixe de toutes les URL est /context-path/api/v1 et un préfixe unifié doit être ajouté à certaines URL. La solution envisageable consiste à modifier le chemin contextuel du service et à ajouter api/v1 au chemin contextuel. La modification du préfixe global peut résoudre le problème ci-dessus, mais il existe des inconvénients si l'URL a plusieurs préfixes, par exemple certains. Les URL nécessitent des préfixes. S'il s'agit de api/v2, il ne peut pas être distingué. Si vous ne souhaitez pas ajouter api/v1 à certaines ressources statiques du service, il ne peut pas être distingué. Ce qui suit utilise des annotations personnalisées pour ajouter uniformément certains préfixes d'URL. un,

See all articles