2010-05-28 161 views
1

我在我的智慧结束在这里,我通常喜欢在我自己的工作,但这让我很好,真正殴打在这里.. 我想改写我的网址包含加号...国防部重写网址

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

/can-be-any-length.html

任何帮助将是非常赞赏因为重写+ php不是一个选项

回答

2

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

但是你可以使用"N" (Next)标记可以重新更换,导致重写引擎循环,同时还有在查询字符串是一个“+”:

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

谢谢哥们工作了一个治疗:) – Webby 2010-05-28 13:41:39

1
与RewriteMap指令

可能:

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

文件内容/path/to/file.txt

- + 
+0

做为你工作?据我所知,只定义了五种不同的地图类型:'txt','rnd','dbm','int'和'prg'。 – Gumbo 2010-05-28 14:19:50

+0

你说得对,我写得很快,对不起。修复 – 2010-05-28 14:29:12