我在Joomla网站上有几个已被编入索引的网址,我需要将它们重定向到一些新页面 . 旧的URL形成如下:
http://www.mydomain.com/en/wfmenuconfig/family/family-disease/177-category-english?start=20
我希望它去:
http://www.mydomain.com/en/family-members/family-disease
我试过用:
RewriteCond %{QUERY_STRING} ^start=(.*)$
RewriteRule ^/en/wfmenuconfig/family/family-disease/177-category-english$ http://www.www.mydoamin.com/en/family-members/family-disease%1 [R=301,L]
我在这里尝试了几个答案,但似乎没有任何效果 .
htaccess 301 redirect dynamic url
和
301 Redirecting URLs based on GET variables in .htaccess
我接下来应该尝试什么想法? (我尝试过正常的重定向301)
4 回答
你几乎得到了它 . 您需要从规则的模式中删除前导斜杠,因为在从htaccess文件应用规则时,它会从URI中删除:
您也不需要
http://www.www.mydoamin.com
位(2套www
) . 在目标的末尾,您有family-disease%1
,这意味着如果start=20
,那么您的网址末尾将如下所示:family-disease20
. 是对的吗?新URL中没有查询字符串,因此它只是剥离最后一个URL路径部分 . 如果你想要它硬编码
或者更灵活一点
或者如果你只想在
en/wfmenuconfig
之后保持两个等级永远不要在启用
301
的情况下进行测试,有关详细信息,请参阅此答案Tips for debugging .htaccess rewrite rules .如果您只想将
http://www.mydomain.com/en/wfmenuconfig/family/family-disease/177-category-english?start=$var
重定向到http://www.mydomain.com/en/family-members/family-disease
,那么您必须尝试以下指令:但如果这不是你想要的,而是将
http://www.mydomain.com/en/wfmenuconfig/family/family-disease/177-category-english?start=$var
重定向到http://www.mydomain.com/en/family-members/family-disease$var
那么你可以检查一下:现在,如果它可行的话,再多试一次 . 如果不是,那么找到任何可疑的代码为什么不起作用:
并转到
http://www.mydomain.com/en/wfmenuconfig/family/family-disease/177-category-english?start=$AnyNumber
,如果它重定向到http://www.mydomain.com/en/family-members/family-disease
,只需确保您的Web服务器有 mod_rewrite .我只是想把它扔出去,我也无法让RewriteRule工作 . 我有一个客户端从.asp页面升级到WordPress驱动的站点 . 为了让它工作,我必须做的是在“#BEGIN WordPress”部分之前在htaccess文件中插入RewriteCond和RewriteRule . 现在它的工作正常 .
这是发布的方式,但希望它可以帮助其他人遇到同样的问题 .
不起作用:
工作:
操作顺序必须重要=)