Mod rewrite 使用Mod重写URL

Mod rewrite 使用Mod重写URL,mod-rewrite,url-rewriting,Mod Rewrite,Url Rewriting,我在这里束手无策,我通常喜欢自己解决问题,但这让我在这里彻底失败了。。 我正试图修改重写我的网址,其中包含加号 /search.php?q=can+be+any+length 到 /can-be-any-length.html 任何帮助都将非常感谢,因为重写+php不是一个选项使用mod_rewrite进行此类工作并不是最佳选项,因为您一次只能替换固定数量的字符。使用PHP肯定会更容易 但您可以使用该标志重新启动替换,从而在查询字符串中有“+”时导致重写引擎循环: RewriteCond %{Q

我在这里束手无策,我通常喜欢自己解决问题,但这让我在这里彻底失败了。。 我正试图修改重写我的网址,其中包含加号

/search.php?q=can+be+any+length

/can-be-any-length.html


任何帮助都将非常感谢,因为重写+php不是一个选项

使用mod_rewrite进行此类工作并不是最佳选项,因为您一次只能替换固定数量的字符。使用PHP肯定会更容易

但您可以使用该标志重新启动替换,从而在查询字符串中有“+”时导致重写引擎循环:

RewriteCond %{QUERY_STRING} ^(([^&]*&)*)q=([^&+]*)\+([^&+]*\+.*)
RewriteRule ^ %{REQUEST_URI}?%1q=%3-%4 [N]
RewriteCond %{QUERY_STRING} ^(([^&]*&)*)q=([^&+]*)\+([^&+]*)&*(.*)$
RewriteRule ^ /%3-%4.html?%1%5 [L,R=301]

可能需要重新编写地图:

RewriteMap mymap txt:/path/to/file.txt
RewriteRule ^(.*).html$ search.php?q=${mymap:$1}
文件/path/to/file.txt的内容

- +

这对你有用吗?据我所知,只定义了五种不同的地图类型:
txt
rnd
dbm
int
,和
prg