2016-08-30 1 views
1

ich die Fragezeichen auf meiner URL wie diese annehmen möchten:Accept Fragezeichen auf .htaccess

http://www.example.com/page/url-example-?-15 

Ich benutze diese .htaccess Datei:

RewriteRule page/([a-zA-Z0-9éèÉàêç\-\"\'\(\)\:\!\?]+)-([0-9]+) page.php?url=$1&Id=$2 

Alle Zeichen außer dem Fragezeichen arbeiten, Wie kann ich das beheben?

+5

Nicht möglich '?' Ist eine url metacharacter, bedeutet den Beginn der Abfrage parameters.that URL wird als URL analysieren 'http://www.example.com/page/url-example-', mit einer Abfragezeichenfolge von -15. Das '?' Müsste als '% 3F' codiert werden, um ein LITERAL'? 'In der URL zu werden, und kein Metachar. –

+2

das '?' Hat eine besondere Bedeutung in URL-Strings. Warum auf der Erde würdest du gegen diesen Standard kämpfen wollen? Kannst du nicht einen anderen Charakter wählen? –

Antwort

0
<?php 

    preg_match("/([a-zA-Z0-9éèÉàêç\-\"\'\(\)\:\!\?]+)-([0-9]+)/", 
      "url-example-?-15", 
      $matches, 
      PREG_OFFSET_CAPTURE); 

    print_r($matches); 

?> 

body, html, iframe { 
 
    width: 100% ; 
 
    height: 100% ; 
 
    overflow: hidden ; 
 
}
<iframe src="https://ideone.com/1yr1ec"></iframe>

+0

Während dieser Code die Frage beantworten kann, würde die Bereitstellung eines zusätzlichen Kontextes hinsichtlich dessen, wie und/oder warum er das Problem löst, den langfristigen Wert der Antwort verbessern. – glennsl