我想将所有格式为“ 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>
答案 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>