困难的Apache URL重写

时间:2011-08-03 15:43:21

标签: apache mod-rewrite url-rewriting

我想重写这个网址:

myhost.com/elecresult-Cantonales-2011/039/03915.html

到这一个:

myhost.com/elecresult-Cantonales-2011/(path)/039%2F03915.html

你能帮我改写重写规则吗? urlencode有可能吗?

1 个答案:

答案 0 :(得分:0)

在RewriteRule中使用正则表达式来匹配您已布置的路径。

如果要匹配通用路径,即/ first / second / third,可以使用此正则表达式:^ /(。+)/(。+)/(。+)$。您使用符号$ n(其中n是1 - 10)来匹配相应的捕获。要将此更改为/ first // secondthird,请指定替换字符串: $ 1 // $ 2 $ 3

下面的代码片段应该这样做。您可以将它添加到虚拟主机指令,.htaccess文件或目录指令中的httpd.conf。

[L]指定编写此规则并停止。

<IfModule mod_rewrite>
   RewriteEngine on

   RewriteRule ^/(.+)/([0-9]+)/(.+)$ $1/(path)/$2%2F$3 [L]
</IfModule>