【问题标题】:htaccess query string redirect not workinghtaccess 查询字符串重定向不起作用
【发布时间】:2018-01-13 07:35:18
【问题描述】:

我正在尝试使用 RewriteCond 和 RewriteRule 将 http://example.com/for-sale/?property=1234 重定向到 .htaccess 中的 http://example.com/for-sale/property-name/。这是我目前所拥有的:

RewriteCond %{QUERY_STRING} ^(property=1234)
RewriteRule ^$ /for-sale/property-name/? [R=301,L]

这不起作用。我可以将 ?property=1234 重定向到 for-sale/property-name/ 但如何让它与未重定向 URL 中的 /for-sale/ 一起使用?我在 RewriteRule 中尝试了各种待售组合,但没有成功。 谢谢。 我所有的链接现在都坏了,所以我真的很感激一些建议。谢谢。

【问题讨论】:

  • 不,它是由 WordPress 生成的,来自 'register_post_type' 中的 'rewrite' 参数。我找到了问题并解决了,请看下面的答案。

标签: .htaccess redirect mod-rewrite query-string


【解决方案1】:

这是一个 wordpress 网站,所以第一个错误是在 wordpress 重写之后进行重写。第二个错误是在 RewriteRule 中。这是工作代码:

<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /

RewriteCond %{QUERY_STRING} property=1234$
RewriteRule ^for-sale/?$ /for-sale/property-name/? [R=301,L]

 ... my other rewrites

</IfModule>

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

这行得通。希望它可以帮助其他人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-31
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多