【问题标题】:Wildcard 301 redirect using regular expression使用正则表达式的通配符 301 重定向
【发布时间】:2014-10-17 09:26:37
【问题描述】:

任何帮助都会很棒,因为我正在努力让它发挥作用。

我正在尝试为 /pop.php?path=content/ 使用通配符 RedirectMatch 301 重定向

RedirectMatch 301 /pop.php?path=content/.* http://mywebsite.com

但是由于“.”,“?”和“=”是不是工作不正常,我不擅长正则表达式。

谢谢 史蒂夫

【问题讨论】:

    标签: regex .htaccess redirect


    【解决方案1】:

    将其放入站点根目录的.htaccess 文件中:

    RewriteEngine on
    RewriteBase /
    
    RewriteCond %{QUERY_STRING} path=content [NC]
    RewriteRule pop.php http://mywebsite.com/? [R=301,L]
    

    您需要RewriteCond 来检查查询字符串的值。当且仅当匹配时,pop.php 将被重定向到另一个站点。

    【讨论】:

    • 感谢您的帮助。我已经厌倦了您提供的代码,但我得到的是 404 而不是 301 重定向到根域。谢谢史蒂夫。
    • 无法找到pop.php 中的 404?是物理文件还是虚拟路径?
    • 该文件不再存在。该文件用于旧的 PHP 库脚本已从站点中删除。完整路径为subdomain.websiteaddress.com/pop.php?path=content/path/path/…
    • 您是否启用了mod_rewrite 并且您是否将.htaccess 放在子域站点根目录中?
    • Mod_rewrite 已启用,并且 .htaccess 包含在子域的根目录中。我有其他重写规则正在运行和工作,但只是努力使用某种通配符来解决这个问题,它将 301 将任何 /pop.php?path=content/ 查询重定向到子域的根目录。
    猜你喜欢
    • 2018-04-19
    • 1970-01-01
    • 1970-01-01
    • 2012-06-21
    • 2014-12-05
    • 2018-05-31
    • 2020-10-14
    • 2016-09-26
    相关资源
    最近更新 更多