重写URL以成为查询字符串

时间:2016-01-05 17:11:11

标签: mod-rewrite

我正在尝试重写

等网址
index.php?page=product&id=16&var1=value1&var2=value2...

到这个

app/presenters/similarity_presenter.rb

换句话说,我想将一个“主要参数”翻译成一个id(我可以做到这一点),但是从那时起,我还希望有一些“目录”翻译成递归到键值对。

这是否可以使用Apache mod_rewrite?

1 个答案:

答案 0 :(得分:1)

如果没有while(!device1Finished) { } sendMessages(); 标志,则任何[L]规则将重复应用于与规则的重写条件和模式相对应的任何URI。

知道这一点,我们可以构建一个mod_rewrite规则,查找具有以某种方式开头的查询字符串的任何URI,然后反复收集该URI的文件夹名称(一次两个)以构建其余的URI查询字符串。

请参阅以下示例:

的根文件夹中
mod_rewrite

使用以下http://example.com/ 指令保存.htaccess文件:

mod_rewrite

使用上述内容:

RewriteEngine On

RewriteRule ^(product)/([0-9]{2})/(.*) http://%{HTTP_HOST}/$3/index.php?page=$1&id=$2

RewriteCond %{QUERY_STRING} ^(page=product&id=[0-9]{2}.*)
RewriteRule ^([^/]+)/([^/]+)/(.*/)?index.php$ http://%{HTTP_HOST}/$3index.php?%1&$1=$2

变为

http://example.com/product/16/var1/value1/var2/value2/

http://example.com/index.php?page=product&id=16&var1=value1&var2=value2

变为

http://example.com/product/16/var1/value1/var2/value2/var3/value3/var4/value4/