我與Lighty的mod_rewrite模塊有問題。Lighttpd的mod_rewrite模塊
我試圖做這個:example.com/index.php?search=whatever,出現example.com/whatever或example.com/search/whatever(還沒有決定 - 不知道多少關於搜索引擎優化)
雖然我希望它像上面那樣行事,但我也想排除所有的physichal目錄和所有文件,例如目錄/ images /和文件index.php,favicon.ico,style.css等從重寫,因爲它的行爲很奇怪。
我該怎麼做到這一點?我試過以下,它的工作好了我想要的東西,但並沒有真正與目錄和文件的工作,排除:
url.rewrite-once = (
"^/([a-zA-Z0-9_-]+)" => "/index.php?search=$1",
"^/(images|js|wp-content)/(.*)" => "$0",
"(.*\.php|.*\.css|favicon.ico)" => "$0")
順便說一句,有什麼區別有此之間:
"^/([a-zA-Z0-9_-]+)" => "/index.php?search=$1",
這:
"^/(.*)$" => "/index.php?search=$1"
好的,幫了很多!但是現在我發現了另一個問題。每當我用特殊字母搜索時,例如ö,ü,ï等等,它都不會起作用。我已經嘗試爲這樣的所有字母添加\ p {L}: 「^/search /([0-9 \ p {L} _-] +)」=>「/index.php?search= $ 1「 但這根本沒有幫助。順便說一句,每當我搜索名稱如「john example」時,它只搜索空間之前的任何內容。我試圖用「john + example」,「john_example」和「john-example」來解決這個問題,但這些都沒有。我在我的RewriteRule中丟失了什麼? – AnonymousJ 2013-04-21 14:05:12
雖然當我允許通過'。*'模式的所有字符,一切似乎工作正常。 – AnonymousJ 2013-04-21 14:29:24
我對'\ p {L}'語法不熟悉,但是正則表達式確實提供了'\ w'單詞字符類(它匹配字母,數字和非必要項)。所以你可以試試'([\ w + - ] +)'來允許單詞字符,加號和連字符。您也可以在字符類中輸入一個空格(但要確保文字連字符是方括號中的最後一個字符),但空格不會在原始URL中被允許,所以我不知道空格是否會比賽。 – Bobulous 2013-04-21 16:50:24