【问题标题】:301 redirect with special characters .htaccess使用特殊字符 .htaccess 进行 301 重定向
【发布时间】:2018-06-26 12:37:03
【问题描述】:

我有一个 WordPress 网站,我需要将数百个 URL 重定向到主页。我的 .htaccess 目前看起来像这样...

# BEGIN WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} \s/+index\.php[?/\s] [NC]
RewriteRule ^ /? [L,R=301]
RewriteCond %{QUERY_STRING} ^(?:page|mact)= [NC]
RewriteRule !^wp-admin/ /? [L,R=301,NC]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

重写正在为我需要它的工作方式而工作,即重定向仅在前端(而不是后端 WP)上包含 pagema​​ct 的任何链接。我唯一的问题是我的类别页面看起来像这样......

www.domain.com/category/general/page/3/?page=page

这些类别页面重定向到我不想要的主页,因此我需要将这些包含“类别”的 URL 类型排除在重定向到主页之外。

谢谢。

【问题讨论】:

    标签: wordpress .htaccess redirect mod-rewrite


    【解决方案1】:

    将您的第二条规则更改为:

    RewriteCond %{QUERY_STRING} ^(?:page|mact)= [NC]
    RewriteCond %{THE_REQUEST} !/(?:wp-admin|category)/ [NC]
    RewriteRule ^ /? [L,R=301,NC]
    

    这将从重定向中排除/category/... URL。

    确保使用新的浏览器进行测试。

    【讨论】:

    • 谢谢@anubhava :)。它有点工作。像 www.domain.com/category/general/page/21/ 这样的 URL 可以工作,但对于在 URL 末尾包含“?page=page-name”的 URL,例如; www.domain.com/category/general/page/21/?page=dog-training 然后这些仍然重定向到我不想要的主页
    • 非常感谢 :D 但现在我的其他 URL 没有重定向。例如'www.domain.com/?mact=dog-training' 和 www.domain.com/?page=dog-training
    猜你喜欢
    • 2016-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-08
    • 1970-01-01
    • 1970-01-01
    • 2017-04-15
    相关资源
    最近更新 更多