我与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