apache - 如何重定向 url 并删除部分字符串
问题描述
我有一个这样的网址:
domain.com/thispart/blah-something-blah-remove
我需要像这样重定向这个网址:
domain.com/newpart/blah-something-blah
更改目录并删除最后一部分(最后一部分始终不变,这次是删除)。
我该怎么做呢?我设法重定向了目录,但最后一个我不知道如何删除。
解决方案
如果您没有任何现有的 mod_rewrite 指令,那么您可以使用文件RedirectMatch
顶部附近的 mod_alias 指令执行以下.htaccess
操作:
RedirectMatch ^/thispart/([\w-]+)-remove$ /newpart/$1
请注意,这将删除“-remove”,如您的示例所示,而不仅仅是字符串“remove”。
假定“-remove”部分之前的路径段由字符0-9
、a-z
、A-Z
或_
组成-
。
这是一个临时 (302) 重定向。
您需要在测试前清除浏览器缓存。
但是,如果您有现有的 mod_rewrite 指令,那么您应该使用 mod_rewrite 来避免潜在的冲突(并提高效率)。例如:
RewriteRule ^thispart/([\w-]+)-remove$ /newpart/$1 [R=302,L]
RewriteRule
(注意模式上没有斜线前缀。)
推荐阅读
- monads - 用纯编程语言包装副作用
- c# - EmguCV Video Writer - 确保您安装了特定的编解码器
- if-statement - 复杂的 IF 语句返回 false
- reactjs - 无法启动 React 项目
- android - 从 Java 代码访问 kotlin Suspend 函数
- php - 如何在 Ajax 中正确制作返回按钮?
- php - PHP字符串拆分规则
- php - 如何使资产在 Laravel 中动态显示
- c# - 是否可以使用 .NetTopologySuite 与多边形相交/剪裁线?
- php - 基于 Laravel 构建的站点,当我提交表单时出现 smtp 错误