【问题标题】:URL Path RewritingURL路径重写
【发布时间】:2025-11-24 14:55:02
【问题描述】:

也许这已经被回答过,我似乎无法得到任何工作。我是重写的新手。

我有的是这个,http://www.domain.com/path1/path2/path3/page

我想要的是从 url 中只删除 path2,所以结果将是 http://www.domain.com/path1/path3/page

如何在不重定向的情况下实现这一点?

这是我目前拥有的:

RewriteRule ^/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)$ $1/$3 [L]

这位于我的 vhost 文件中。

谢谢!

【问题讨论】:

    标签: apache .htaccess mod-rewrite url-rewriting rewrite


    【解决方案1】:

    尝试更改您的正则表达式以说明第二个 path 之后的所有内容:

    RewriteRule ^/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/(.+)$ /$1/$3 [L]
    

    另外,请确保打开重写引擎:

    RewriteEngine on
    

    【讨论】:

    • 嗯,我试过了;但我看到的是 404 页面。是的,我有RewriteEngine on
    • @user1669346 那么问题不在于规则。您希望将这些规则重写为 http://www.domain.com/path1/path3/page,但如果该页面为您提供 404,则规则工作正常,但您的链接已损坏。
    • 原始路径是由 cms 动态创建的,因此目录实际上并不存在。但我想要做的只是掩盖我想要的网址,这是从网址中删除“path2”的网址。这可能吗?