两个
domain.com/blog/post/2011/01/25/This-Is-The-Post-Title!.aspx
domain.com/blog/post/2011/01/25/This-Is-The-Post-Title.aspx
需要重定向到
domain.com/blog/2011/01/25/this-is-the-post-title
以下规则适用于没有感叹号的网址,但我似乎无法获得删除条件的条件!来自网址(如果存在的话)。
RewriteRule ^blog/post(.*).aspx$ /blog${lc:$1} [R=301,L]
有什么想法吗?
答案 0 :(得分:1)
在规则之前添加此行:
RewriteRule (.*)!(.*) $1$2 [N,DPI]
这将删除URL中的所有 !
字符(仅限路径部分,查询字符串不受影响)。您可以将其修改为仅适用于博客文章标题 - 由您决定。
小心但是 - 它使用[N]
标志,这会导致Apache从最顶层的规则再次开始重写,以便删除所有出现,否则只会替换第一次出现(如果有的话)不止一个!
)。因此,我建议将此规则放在顶部的。
[N]
标志的替代方案是拥有此标准但没有此标记但会多次出现。
http://httpd.apache.org/docs/current/rewrite/flags.html#flag_n
答案 1 :(得分:0)
我能够利用 LazyOne 的答案并最终得到这个:
RewriteEngine On
RewriteRule (.*)!(.*) $1$2 [N,DPI,E=ep:yes]
RewriteCond %{ENV:ep} ^yes$
RewriteRule (.*) https://test.com/$1 [R=301,L]
完美运行!