使用htaccess重定向域的正确语法是哪种?

时间:2019-03-23 16:12:03

标签: .htaccess

没有 $ 美元符号

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^11\.111\.111\.111 [NC,OR]
RewriteCond %{HTTP_HOST} ^olddomain.net [NC,OR]
RewriteCond %{HTTP_HOST} ^olddomain.org [NC,OR]
RewriteCond %{HTTP_HOST} ^newdomain.com [NC]
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [L,R=301]

带有 $ 美元符号

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^11\.111\.111\.111$ [NC,OR]
RewriteCond %{HTTP_HOST} ^olddomain.net$ [NC,OR]
RewriteCond %{HTTP_HOST} ^olddomain.org$ [NC,OR]
RewriteCond %{HTTP_HOST} ^newdomain.com$ [NC]
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [L,R=301]

因此,我想使用相同的URL将所有流量重定向到新域。 例如:

http://olddomain.net/post-123/
http://olddomain.org/post-123/

http://www.newdomain.com/post-123/

那么哪个是正确的?有没有 $ 符号?

1 个答案:

答案 0 :(得分:1)

正确的版本是带有$
的版本 因为$恰好指示字符串的结尾。

具有:

RewriteCond %{HTTP_HOST} ^11\.111\.111\.11

您还重定向了11.111.111.11 2 或11 3 或11 999999
最后不是$。
但是,使用示例的所有值,它不应更改任何内容

为正确起见,还必须在要点之前添加\,否则可以用字母或其他符号代替。但是再次,在这种情况下它不会改变任何东西...

RewriteCond %{HTTP_HOST} ^newdomain\.com$ [NC]