2016-08-30 18 views
1

我要接受我的網址這樣的問號問號:接受的.htaccess

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

我用這個.htaccess文件:除了問號

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

所有字符工作,我該如何解決這個問題?

+5

不可能的'?'是一個URL元字符,表示查詢parameters.that URL開始將解析爲URL'http://www.example.com/page/url-example-',查詢字符串爲'-15'。 '?'必須編碼爲'%3F'才能成爲URL中的LITERAL'?',而不是metachar。 –

+2

'?'在URL字符串中有特殊含義。爲什麼要在地球上與這個標準作鬥爭呢?你不能選擇一個不同的角色嗎? –

回答

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

儘管此代碼可能會回答問題,但提供有關如何解決問題和/或爲何解決問題的其他上下文會提高答案的長期價值。 – glennsl