.htaccess - Mod_rewrite 不适用于以 %(百分号)开头的 url

标签 .htaccess mod-rewrite symbols pagerank

有几个指向我管理的站点的链接,其中网站管理员错误地在域名和页面名称之间包含了一个空格:

    www.domain.com/ page.html

当用户点击时,这会给出

    www.domain.com/%20page.html

我想使用 mod_rewrite 将命中重定向到不正确的地址到正确的地址,但是我的重写规则不起作用。我尝试了以下但没有成功:

    rewriterule ^\%20page.html$ /page.html [R=301,L]
    rewriterule ^.20page.html$ /page.html [R=301,L]

我如何编写规则来捕获此地址?我想保持 PageRank 并且不因链接损坏而受到惩罚,但我无法让网站管理员修复他的链接.

最佳答案

使用文字空格,用反斜杠转义,这样它就不会结束正则表达式:

RewriteRule ^\ page.html$ /page.html [R=301,L]

关于.htaccess - Mod_rewrite 不适用于以 %(百分号)开头的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/734654/

相关文章:

apache - 使用 SSL 时 VirtualHost 配置(重写)不起作用

apache - Phabricator 重写规则配置问题

c++ - 防止 Boost Spirit Symbol 解析器过早接受关键字

apache - 在 Apache 服务器上使用 .htaccess 实现缓存控制

.htaccess - htaccess 重写破坏了相对路径

.htaccess - 当我只浏览子域而不是完整的商店 url 时,Magento 浏览商店 View

hash - symstore是如何计算目录hash值的

php - 链接正确时未找到样式表

.htaccess - 是否可以将 https ://www. 示例转发到 https ://example?

scheme - 方案中标识符和符号之间的区别?