使用此代码:
RedirectMatch 301 ^((?!.*?excluded_file\.php).*)$ http://newdomain.com$1
...我正在将所有请求从olddomain.com重定向到我的Apache服务器到newdomain.com,除了一个名为excluded_file.php的文件。但实际上我需要排除以“excluded_”(excluded_1.php,excluded_2.php,excluded_3.php)开头的所有请求的文件以及对“olddomainfiles”文件夹中的文件的任何请求。所以最终的结果是:
将重定向至newdomain.com/whatevertherequestwasfor:
http://olddomain.com/somerandomfile.php
http://olddomain.com/otherfolders/whateverfile.php
http://olddomain.com/nice_URL_without_file_extension_or_slash
不会重定向:
http://olddomain.com/olddomainfiles/anyfile.php
http://olddomain.com/exclude_1.php
http://olddomain.com/exclude_2.php
http://olddomain.com/exclude_3.php
为什么我需要这个:我刚刚将我的应用程序提交给Apple,并在最后一刻决定我需要更改域名,这打破了应用程序的一个功能,因为它明确依赖于查看旧域名 - 它由于对我的虚拟主机文件所做的更改,它不再看到它了。我几天前发布了这个问题,但我错了我需要的东西......
答案 0 :(得分:1)
这不会起作用吗?
RedirectMatch 301 ^((?!.*?(excluded.*\.php|olddomainfiles)).*)$ http://newdomain.com$1
只需更改前面的负面展示(之前正在寻找excluded_file\.php
),就可以选择excluded.*\.php
或olddomainfiles
。