【问题标题】:Redirect page using HTACCESS to URL that contains question mark in it?使用 HTACCESS 将页面重定向到其中包含问号的 URL?
【发布时间】:2013-12-17 02:16:51
【问题描述】:

这是我的问题:

我想重定向所有请求

http://mypage.com/archives/17080
TO
http://mypage.com/p?-17080

http://mypage.com/archives/85436
TO
http://mypage.com/p?-85436

我在我的 .htaccess 中使用这个规则:

RewriteRule ^archives/([-A-z0-9]+)/?$ p?-$1

但它似乎不起作用...... 此外,当我从重定向到 url 中删除问号时:

RewriteRule ^archives/([-A-z0-9]+)/?$ p-$1

一切正常。所以我的猜测是 ? 导致了这个问题。 任何形式的帮助将不胜感激! 提前致谢

【问题讨论】:

    标签: regex apache .htaccess mod-rewrite


    【解决方案1】:

    你的正则表达式是错误的。试试这个规则:

    RewriteRule ^archives/([A-Z0-9]+)/?$ /p?-$1 [L,QSA,NC,NE]
    

    您的正则表达式中有此字符范围[A-z],其中包括[A-Za-z] 范围之外的许多其他字符。

    【讨论】:

    • 尽量提供详细信息。什么不起作用,你遇到了什么错误?你还有其他规则吗?
    • 嗨,它只是重定向到“mypage.com/p”,所以问号仍然是一个问题
    • 在您的浏览器中,您会看到http://mypage.com/p,但它会在查询字符串中看到-$1。如果您还想在浏览器中更改 URL,请使用:RewriteRule ^archives/([A-Z0-9]+)/?$ /p?-$1 [L,QSA,NC,NE,R]
    猜你喜欢
    • 2014-06-23
    • 1970-01-01
    • 2012-12-10
    • 2022-01-20
    • 2021-09-09
    • 1970-01-01
    • 1970-01-01
    • 2019-03-03
    • 1970-01-01
    相关资源
    最近更新 更多