我无法通过 .htaccess 重定向这样的 URL:
www.url.com/index.php?option=com_content&task=view&id=60&Itemid=22
到
www2.url.com/something.htm
我发现问题出在“旧” URL 上。“正常”重定向 (www.url.com/test.htm --> www2.url.com/something.htm) 效果很好。
我也尝试过重写但找不到有效的解决方案。
也许有人知道如何解决我的问题?
提前感谢 Lars。
仅供参考:服务器:Apache,我拥有对服务器的完全 root 访问权限
编辑使用的重写规则:
我尝试在 .htaccess 中使用重写规则进行以下操作
测试 1:
RewriteCond %{QUERY_STRING} option=com_content&task=view&id=63&Itemid=11 RewriteRule $ www2.url.com [R=301,L]
结果 1:它重定向到 www2 url,但不仅仅是 www2.url.com。它重定向到 www2.url.com/option=com_content&task=view&id=63&Itemid=11
测试2:
RewriteRule ^option=com_content&task=view&id=63&Itemid=11$ www2.url.com [R=301,L]
结果 2:什么都没发生。感谢您的进一步提示 :-)
答案1
对于 www 域名虚拟主机:
<VirtualHost *>
ServerName www.url.com
RewriteEngine on
Rewritecond %{HTTP_HOST} !^www2\.url\.com
RewriteRule (.*) http://www2.url.com/$1 [R=301,L]
</VirtualHost>
然后在 www2 上:
<VirtualHost *>
ServerName www2.url.com
RewriteEngine on
RewriteCond $1 index.php\?option\=com_content\&task\=view\&id\=60\&Itemid\=22
RewriteRule (.*) http://www2.url.com/something.html [R=301,L]
</VirtualHost>
答案2
想出了如何解决我的问题 - 感谢所有人在我找到解决方案的过程中提供的任何提示。
我在 www.url.com 域名的 httpdocs 根文件夹中的 .htaccess 文件中添加了以下条目:
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\?option=com_content&task=view&id=12&Itemid=11\ HTTP/
RewriteRule ^index\.php$ http://www2.url.com/?p=77 [R=301,L]