我需要将一个格式如下:www.bluewidgets.com/?p=123
的Wordpress URL重定向到另一个域上的干净网址。我如何通过.htaccess
执行此操作?我见过的所有教程都说我需要在查询字符串之前指定url的另一部分,比如index.php
,但是我的URL没有 - 它只是域,然后是查询字符串。
答案 0 :(得分:1)
你能不能在header.php之前添加其他内容:
<?php
if ($_GET['p'] == '123') {
header('Location:http://www.yourotherdomain.com');
exit;
}
?>
我过去做过类似的事情。它可能不是很漂亮,但它确实有效 - 我有兴趣听听更有经验的PHP用户是否是一种合法的策略。
答案 1 :(得分:1)
尝试此规则:
RewriteCond %{QUERY_STRING} =p=123
RewriteRule ^$ /foo/bar? [L,R=301]
或使用 REQUEST_URI :
RewriteCond %{REQUEST_URI} =/?p=123
RewriteRule ^$ /foo/bar? [L,R=301]
请注意,RewriteCond
模式以=
开头,用于标识词典比较而不是正则表达式测试。此外,替换中的空查询(用…?
表示)将删除最初请求的查询。
答案 2 :(得分:0)
wordpress是否已经内置了URL改进功能?出于好奇,你为什么要这么做呢。
除此之外,你提到的是你如何通过htaccess来做到这一点。你遇到这个方法的问题吗?
答案 3 :(得分:0)
标准301重定向的格式为(并且将位于domain1):
Redirect 301 /filename.php http://domain2.com/filename.php
但我只是尝试使用默认永久链接,但它无效。
在domain1上,您可以使用标准的wordpress重写块重写URL,然后立即将其重定向到域2。凌乱,但它可能会奏效。