【问题标题】:htaccess RedirectMatch regular expression for URL?URL的htaccess RedirectMatch正则表达式?
【发布时间】:2023-04-10 16:49:01
【问题描述】:

在我的 Wordpress 博客上,我曾经有一个不再需要的插件。该插件用于创建一堆如下所示的 URL:

http://tambnguyen.com/manage-subscriptions?srp=532&sra=s

postID 为 532。如何重定向查询字符串,以便将上述 URL 重定向到:

http://tambnguyen.com/?p=532

我尝试了一些方法,但没有成功(“管理订阅”后有一个可选的“/”

<IfModule mod_rewrite.c>
    RedirectMatch 301 ^/manage-subscriptions/?\?srp=(\d{1,5})(.*)$ http://tambnguyen.com/\?p=$1
</IfModule>

请帮忙。谢谢!

【问题讨论】:

    标签: regex .htaccess url mod-rewrite


    【解决方案1】:

    通过httpd.conf启用mod_rewrite和.htaccess,然后把这段代码放到你.htaccessDOCUMENT_ROOT目录下:

    Options +FollowSymLinks -MultiViews
    # Turn mod_rewrite on
    RewriteEngine On
    RewriteBase /
    
    RewriteCond %{QUERY_STRING} ^srp=([^&]+) [NC]
    RewriteRule ^manage-subscriptions/?$ /?p=%1 [L,R=301,NC]
    

    【讨论】:

    • 有什么办法可以用 RedirectMatch 代替重写它吗?
    • 据我所知,Redirect 和 RedirectMatch 无法重定向到带有查询字符串的 URL,因此最好使用更高级且功能更丰富的 mod_rewrite。
    • 我已将以下代码添加到我的 .htaccess 文件中,但运气不好。我错过了什么吗? &lt;IfModule mod_rewrite.c&gt; Options +FollowSymLinks -MultiViews RewriteEngine On RewriteBase / RewriteCond %{QUERY_STRING} ^srp=([^&amp;]+) [NC] RewriteRule ^manage-subscriptions/?$ /?p=%1 [L,R=301,NC] &lt;/IfModule&gt;
    • 两件事:1.你在httpd.cond中加载了mod_redir模块吗? 2.能不能把&lt;IfModule mod_rewrite.c&gt;&lt;/IfModule&gt;注释掉再试一次?
    • 1.) 这不是我的服务器,我无权访问 httpd.cond 和 2.) 是的,试过了,还是不行:(
    猜你喜欢
    • 2016-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-29
    相关资源
    最近更新 更多