我可以将所有旧的非查询字符串网址重定向到新网址

时间:2019-06-07 10:18:19

标签: .htaccess

我想将所有格式为“ domain.com/property-search/ref-R3265882”的旧网址重定向为“ domain.com/services/properties/for-sale/property/?ref= R3265882”,但似乎无法正常工作

我尝试过:

RewriteRule ^property-search/ref-$ /services/properties/for-sale/property/?ref=$1 [R=302,L]    

还有

RewriteRule ^property-search/(.*)$ /services/properties/for-sale/property/?ref=$1 [R=301,NC,L]    

我想将所有具有旧格式的参考号重定向到新格式。

找到解决方案(如果使用wordpress,请在htaccess中添加以上内容)

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^property-search/ref\-([a-zA-Z0-9-]+)$ /services/properties/for-sale/property/?ref=$1 [R,L]
</IfModule>

2 个答案:

答案 0 :(得分:1)

这应该按照您的描述进行:

RewriteEngine on
RewriteRule ^/?property-search/ref-(R\d+)$ /services/properties/for-sale/property/?ref=$1 [R=301]

一个好主意是首先从302重定向开始,并且一旦对结果满意就将其更改为301。这样可以防止在仍在玩耍时缓存问题。

如果启用了此类文件的解释并且重写模块为,则该规则将在http服务器主机配置或位于http主机文档根目录中的动态配置文件(“ .htaccess”)中同样起作用。已加载... 在所有可能的情况下,您都应该首选使用实际的http服务器配置,但是动态配置文件有很多缺点。

答案 1 :(得分:0)

通过在wordpress当前htaccess条目上方执行以下操作,我可以对它进行排序:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^property-search/ref\-([a-zA-Z0-9-]+)$ /services/properties/for-sale/property/?ref=$1 [R,L]
</IfModule>