首页 > 解决方案 > 如何重定向 url 并删除部分字符串

问题描述

我有一个这样的网址:

domain.com/thispart/blah-something-blah-remove

我需要像这样重定向这个网址:

domain.com/newpart/blah-something-blah

更改目录并删除最后一部分(最后一部分始终不变,这次是删除)。

我该怎么做呢?我设法重定向了目录,但最后一个我不知道如何删除。

标签: apache.htaccesshttpredirect

解决方案


如果您没有任何现有的 mod_rewrite 指令,那么您可以使用文件RedirectMatch顶部附近的 mod_alias 指令执行以下.htaccess操作:

RedirectMatch ^/thispart/([\w-]+)-remove$ /newpart/$1

请注意,这将删除“-remove”,如您的示例所示,而不仅仅是字符串“remove”。

假定“-remove”部分之前的路径段由字符0-9a-zA-Z_组成-

这是一个临时 (302) 重定向。

您需要在测试前清除浏览器缓存。


但是,如果您有现有的 mod_rewrite 指令,那么您应该使用 mod_rewrite 来避免潜在的冲突(并提高效率)。例如:

RewriteRule ^thispart/([\w-]+)-remove$ /newpart/$1 [R=302,L]

RewriteRule (注意模式上没有斜线前缀。)


推荐阅读