我要从
重定向 www.example.com/forum
或example.com/forum
到
www.example.ir/forum
使用htaccess
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.ir/forum$ [OR]
RewriteCond %{HTTP_HOST} ^example.com/forum$ [OR]
RewriteCond %{HTTP_HOST} ^www.example.com/forum$
RewriteRule (.*) http://www.example.ir/forum$1 [R=301,L]
我做不到,我总是得到:
www.example.irforum
(没有斜线/)是死链接。
答案 0 :(得分:0)
您发布的代码无法重定向到www.example.irforum
(没有斜线)。事实上,您发布的代码不会做任何事情(因为条件都不会匹配)。如果您看到重定向,那么它可能是以前缓存(错误)的重定向。
假设example.com
和example.ir
指向同一个地方,请在.htaccess文件中尝试以下操作:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
RewriteRule ^forum(.*) http://www.example.ir/forum$1 [R=302,L]
以上规则处理如下:
RewriteRule
模式 ^forum(.*)
匹配?如果是,那么继续...... HTTP_HOST
服务器变量是否与 CondPattern 匹配。即。 Host
标题是www.example.com
还是example.com
?如果是,那么继续...... http://www.example.ir/forum$1
- 这是RewriteRule
替换。 $1
指的是RewriteRule
模式中捕获的组(第一个带括号的子模式) - 即。无论匹配(.*)
。如果example.com
和example.ir
指向不同的服务器,那么您就不需要RewriteCond
指令。
使用302(临时)重定向进行测试,直到您确定它正常工作然后更改为301(永久)。或者,禁用浏览器缓存进行测试。
HTTP_HOST
变量仅包含HTTP Host
标头。例如。 example.com
。这不包含路径信息。使用RewriteRule
模式匹配网址路径。