Si l'URL contient un devis comment spécifier l'attribut rel=canonical valeur?
Dire le chemin de votre URL est:
/thisisa"quote/helloworld/
Alors comment voulez-vous créer le rel=canonical
URL?
Est-ce casher?
<link rel="canonical" href="/thisisa&quot;/helloworld/" />
Mise à JOUR
De préciser, je suis de la soumission d'un formulaire, j'ai besoin de convertir une partie de la chaîne de requête dans l'URL. Les étapes sont les suivantes:
- .htaccess ne la redirection
- Processus PHP un répertoire comme une chaîne de requête.
- La chaîne de requête dynamiquement inséré dans l':
- Titre,
- Description,
- Mots-clés
- URL canonique.
- Cracher de nouveau dans la forme de la zone de saisie
J'ai donc besoin de savoir quel est le traitement doit être effectué à chaque étape de la voie...Sur la première coupe, c'est mon point de vue:
- Titre:
htmlspecialchars($rawQuery)
- Description:
htmlspecialchars($rawQery)
- Mots-clés:
htmlspecialchars($rawQuery)
- URL canonique: C'est la partie la plus délicate. Elle doit correspondre à la même URL .htaccess redirige vers mais tout de même, je pense que le raw de la requête est dangereux parce que les guillemets peuvent provoquer JavaScript injection. Inquiet au sujet de
urlencode($rawquery)
puisqu'il vient de l'URL, ne serait-ce pas déjà être URL-encodé? - Cracher retour en forme:
htmlspecialchars($rawQuery)
OriginalL'auteur joedevon | 2009-10-09
Vous devez vous connecter pour publier un commentaire.
Vous devez vous séparer de votre question en deux:
Ai-je besoin pour coder le guillemet double caractère dans le chemin de l'URL?
Oui, le guillemet de caractères (U+0022) n'est pas autorisé dans la plaine, et doit être codé avec
%22
.Ai-je besoin pour coder le guillemet double caractère de la valeur de l'attribut HTML?
Il dépend comment vous déclarez la valeur de l'attribut:
attr
=
"
value
"
), ensuite, vous devez coder les douvke quoteation caractère de marque à l'intérieur de la valeur de l'attribut déclaration avec un référence de caractère ("
,"
ou"
).attr
=
'
value
'
), ensuite, vous n'avez pas besoin de coder le guillemet de caractère. Mais il est recommandé de le faire.Et puisque vous avez une barre oblique et d'un guillemet double dans votre valeur d'attribut, le troisième cas (à l'aide de pas de guillemets) n'est pas applicable:
Maintenant d'apporter des réponses ensemble
Depuis un guillemet double doit être codé dans une URL (mais le guillemet simple est!), vous pouvez utiliser ce qui suit pour le faire avec les segments de tracé ou de vous chemin d'accès d'URL:
Et si vous voulez mettre ce chemin d'URL dans un attribut HTML, utilisez la
htmlspecialchars
fonction de coder les caractères HTML spéciaux restant:OriginalL'auteur Gumbo
Utiliser l'URL de s'échapper, dans ce cas %22
http://everything2.com/title/URL+escape+escape séquences
OriginalL'auteur lod3n
Un devis n'est même pas une URL valide caractère, donc je pense qu'à long terme, vous devez répondre à cette. Il est expressément exclue de la syntaxe d'URI par La RFC 2396.
Pour résoudre le problème immédiat, cependant, vous aurez besoin d'échapper les caractères, à l'aide de
%22
.OriginalL'auteur womp
Si l'URL contient un guillemet double puis de le contenir avec des guillemets simples.
Ne pas utiliser le codage HTML dans des chaînes URI. C'est une syntaxe non valide tant que le signe doit être codé dans l'Uri puisque c'est une fonction de caractère spécial. Au lieu de toujours utiliser le pourcentage de codant pour les Uri.
OriginalL'auteur
Je dirais que vous souhaitez utiliser la valeur HEXADÉCIMALE pour un devis qui est
%22
.Lisez ceci pour en savoir plus sur Le Codage d'URL.
OriginalL'auteur Joe Phillips