我正在尝试构建重写规则。我无法重定向,因为我需要保留POST和GET数据。特别是,如果不存在,我需要添加字符串“v1”。所以:
http://www.example.com/ - > http://www.example.com/v1
我试过了:
RewriteEngine On
RewriteRule "/(.*)$" "/v1/$1" [NC,L]
但这不起作用。你能帮帮我吗?
编辑:第一个回答:
RewriteRule !^/?v1/ /v1%{REQUEST_URI} [NC,L]
http://www.example.com -> OK
http://www.example.com/v1 -> not preserving POST data (GET OK)
http://www.example.com/v1/ -> OK, please why (I just added a slash after v1, but this is not the solution I'm looking for)?
答案 0 :(得分:1)
这样做:
RewriteEngine On
RewriteRule !^/?v1/ /v1%{REQUEST_URI} [NC,L]
编辑:由于/v1/
是一个目录,而您正在输入http://www.example.com/v1
Apache的mod_dir
模块会添加一个尾随{{1}使用301重定向使其成为/
。由于301重定向,POST数据会丢失。
要防止出现此问题,请使用以下代码段:
http://www.example.com/v1/