您好我已经尝试了一切,但找不到解决方案。 当用户访问此URL
时我希望它将其重写为(不使用重定向)
如何删除'/'? 非常感谢您的帮助。
答案 0 :(得分:2)
尝试使用此规则(您的htaccess必须位于文档根文件夹中)
RewriteCond %{QUERY_STRING} ^pid=([0-9]+)$
RewriteRule ^/?([^/]+)/([^/]+)/([^/]+)/([^/]+)\.jpg$ /$1$2$3$4.jpg?pid=%1 [L]
编辑:此代码仅适用于您的示例中的网址(在查询字符串中有3个斜杠和pid
)
EDIT2:如果你有多个参数(可能是不同的顺序)来简化查询字符串我们不再需要RewriteCond
而是QSA
标志而不是
RewriteRule ^/?([^/]+)/([^/]+)/([^/]+)/([^/]+)\.jpg$ /$1$2$3$4.jpg [L,QSA]
答案 1 :(得分:1)
如果该规则应删除任意数量的斜杠,而不仅仅是固定数字,则必须创建一个循环。为此,您可以使用\[N\]
flag,这将导致重写过程从当前URL开始。这样做时要小心,如果做错了,可能会导致无限循环;)
RewriteRule ^/?(.*)/(.*) $1$2 [N]
应该工作。您可以对其进行测试with this online tool。
[编辑]:完全重写 - 我忘记了[N]
旗帜;)