【问题标题】:.htaccess rewrite URL with a question mark “?” only for 1 specific URL.htaccess 用问号“?”重写 URL仅适用于 1 个特定 URL
【发布时间】:2013-09-23 21:53:46
【问题描述】:

几周前我已经开始了一个话题。 但是我现在遇到了一个与旧问题非常相似的新问题:.htaccess rewrite URL with a question mark "?"

我的目标是这个网址:

/mysite/component/users/?view=registration

改写成这个新的网址:

mysite/registration.html

我当前的.htaccess 得到了这个代码:

RewriteBase /mysite

RewriteCond %{QUERY_STRING} ^view=(.*)$
RewriteRule ^component/users/?$ %1.html? [R=301,L]

效果很好。

但后来我注意到这个配置涉及所有这样开头的 URL:

/mysite/component/users/?view=

例如,此配置还涉及这样的 URL:

/mysite/component/users/?view=remind

这是我不想要的

我只想重写这个 URL:

localhost/mysite/component/users/?view=registration

【问题讨论】:

    标签: .htaccess mod-rewrite url-rewriting query-string


    【解决方案1】:
    RewriteBase /mysite
    
    RewriteCond %{QUERY_STRING} ^view=(registration)$ [NC]
    RewriteRule ^component/users/$ %1.html? [R=301,L]
    

    如果您希望它仅适用于 registration,那么您可以指定它而不是一个包罗万象的正则表达式。

    另外请记住,由于您使用的是全局永久重定向,因此您可能需要清除浏览器缓存或使用其他浏览器来立即查看更改。

    【讨论】:

    • 很棒的伙伴,它有效!非常感谢!不幸的是,我无法投票 +1。
    猜你喜欢
    • 2013-09-03
    • 2021-08-21
    • 1970-01-01
    • 2016-01-02
    • 2014-01-02
    • 2014-10-28
    • 1970-01-01
    • 2023-03-20
    • 2011-04-26
    相关资源
    最近更新 更多