問題:我不知道如何匹配我的表達式中的文字點,所以我可以重寫包含點的查詢字符串。首先我想是這樣的:不能匹配文字點與htaccess正則表達式
RewriteRule ^([\.\w]+)$ index.php?url=$1 [L]
我有一個PHP腳本:
echo "url is: ".$_GET['url'];
即應,在理論上,輸出任何東西,我在我的查詢寫。但對於只包含字母和點的任何查詢,我的腳本始終輸出:
url is: index.php
我已經試過了表達式:
^(.+)$
^([.\w]+)$
,結果是一樣的。
所以問題是:我的表情是否錯誤或者這是否與服務器的配置有關?
按預期的正則表達式的作品,它從一組一個或多個字符相匹配包含點,字母數字字符和字母。不管你要求的路徑是否總是得到'index.php'? – Lekensteyn
是的,我用幾個在線工具檢查了正則表達式,它的工作原理。然而,我在兩個不同的web服務器上得到了相同的結果:不管查詢是什麼,php輸出'index.php'而不是它應該的。 – package
你知道Apache在URL到達'RewriteRule'之前會從URL中取出任何查詢字符串嗎?請舉例說明您輸入的完整網址和期望的輸出。 – ridgerunner