Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
复杂的.htaccess重定向建议_.htaccess_Mod Rewrite_Redirect - Fatal编程技术网

复杂的.htaccess重定向建议

复杂的.htaccess重定向建议,.htaccess,mod-rewrite,redirect,.htaccess,Mod Rewrite,Redirect,我想将所有访问旧域页面的用户重定向到新域的同一页面(只有域名在更改) 如果我的旧域名是www.OLDDOMAIN.com,而我的新域名是www.NEWDOMAIN.com,那么我希望能够将访问www.OLDDOMAIN.com/c/123/Page-Name的访问者重定向到www.NEWDOMAIN.com/c/123/Page-Name(请注意,这些是SEO友好的URL,而不仅仅是子目录或文件名) 但是,我不希望此规则适用于来自特定IP地址的访问者(假设2个IP地址123.123.123.12

我想将所有访问旧域页面的用户重定向到新域的同一页面(只有域名在更改)

如果我的旧域名是www.OLDDOMAIN.com,而我的新域名是www.NEWDOMAIN.com,那么我希望能够将访问www.OLDDOMAIN.com/c/123/Page-Name的访问者重定向到www.NEWDOMAIN.com/c/123/Page-Name(请注意,这些是SEO友好的URL,而不仅仅是子目录或文件名)

但是,我不希望此规则适用于来自特定IP地址的访问者(假设2个IP地址123.123.123.123和345.345.345.345-我知道这些无效)

我还希望确保所有子域(例如files.OLDDOMAIN.com)不会重定向到files.NEWDOMAIN.com

我希望能够在这条规则中加入排除条款。例如,我希望能够继续访问www.OLDDOMAIN.com/index.php或子文件夹,例如www.OLDDOMAIN.com/admin/

需要这样做的原因是,目前在www.OLDDOMAIN.com上的网站正在移至www.NEWDOMAIN.com。而www.OLDDOMAIN.com正在被重新调整为另一个网站。我之所以需要重定向是为了保留搜索引擎排名,至少在新网站建立之前是这样。因此,解决方案需要对SEO友好


对于没有提供任何代码,我深表歉意,但我不完全确定从何处开始使用此代码…

您可以在
文档\u ROOT/.htaccess
文件中使用此代码:

RewriteEngine On

# exclude these IPs
RewriteCond %{REMOTE_ADDR} !^(123\.123\.123\.123|345\.345\.345\.345)$

# exclude these URIs
RewriteCond %{REQUEST_URI} !^/(/index\.php|admin/) [NC]

# exclude sub-domains
RewriteCond %{HTTP_HOST} ^(www\.)?OLDDOMAIN\.com$ [NC]

# redirect to new host
RewriteRule ^ http://www.NEWDOMAIN.com%{REQUEST_URI} [R=302,L,NE]

杰出的谢谢你的回答。现在,如果我有大约1000个独特的页面。最好将它们列为单独的302重定向或使用您的解决方案。我只是在考虑将来的错误页面(404等),因为如果访问者直接重定向到新域,这些页面显然不起作用?也,你认为这会提高或降低网站的速度吗?你是说你想从这个重定向中排除1000个页面,还是想将这1000个独特的页面重定向到新的域?我只想将这1000个独特的页面重定向到新的域我想我更喜欢使用你原来的解决方案,但我只是想知道你认为会是哪个选项最好的…我认为使用
RewriteMap
可能比使用1000条重定向规则更好(如果您可以访问Apache配置)。