Apache .htaccess永久重定向比较
这两个.htaccess代码段的行为相同吗?或者在某些用例中,这两个代码段相比其他代码段是否有好处 目标是将网站的域名从Apache .htaccess永久重定向比较,apache,.htaccess,redirect,mod-rewrite,Apache,.htaccess,Redirect,Mod Rewrite,这两个.htaccess代码段的行为相同吗?或者在某些用例中,这两个代码段相比其他代码段是否有好处 目标是将网站的域名从www.oldexample.com更改为www.newexample.com。它应该考虑www.oldexample.com中的子目录和页面,这些子目录和页面将继续存在于www.newexample.com下的同一路径中 片段1 RewriteEngine on RewriteCond %{HTTP_HOST} ^oldexample.com [NC,OR] RewriteC
www.oldexample.com
更改为www.newexample.com
。它应该考虑www.oldexample.com中的子目录和页面,这些子目录和页面将继续存在于www.newexample.com下的同一路径中
片段1
RewriteEngine on
RewriteCond %{HTTP_HOST} ^oldexample.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.oldexample.com [NC]
RewriteRule ^(.*)$ https://www.newexample.com/$1 [L,R=301,NC]
片段2
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(.*) https://www.newexample.com%{REQUEST_URI} [L,R=301,NC]
例如,当包含以下代码段之一的.htaccess文件放置在www.oldexample.com的根目录中时,当有人请求:
www.oldexample.com/subdirectory/hello world.php
应将它们重定向到:
www.newexample.com/subdirectory/hello world.php
提前谢谢 两者都可以。唯一显著的区别是在第一个测试中检查HTTP_主机。如果其他主机由包含
.htaccess
文件的同一文件夹提供服务,则这是必需的。否则就没有必要了Options+FollowSymlinks
是必需的,但可能已经在主配置级别进行了设置,没有它,重写将无法工作
我建议您使用:
RewriteEngine On
RewriteRule ^ https://www.newexample.com%{REQUEST_URI} [L,R=301]
基本上是选项二,但经过清理以删除不必要的内容(未使用的捕获和在匹配中未指定任何大小写时无意义的大小写不敏感)
但实现同样目标的更简单方法是:
Redirect 301 / https://www.newexample.com/
如果需要检查主机,请使用:
RewriteEngine On
RewriteCond %{HTTP_HOST} (?:^|\.)oldexample.com$
RewriteRule ^ https://www.newexample.com%{REQUEST_URI} [L,R=301]
它将匹配
oldexample.com
和anything.oldexample.com
。如果这不符合您的需要,请告诉我。我的答案对您有用吗?也许你可以接受。谢谢