Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.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
Apache mod将所有.zip文件从我的根目录重写到另一个域_Apache_.htaccess_Redirect_Mod Rewrite - Fatal编程技术网

Apache mod将所有.zip文件从我的根目录重写到另一个域

Apache mod将所有.zip文件从我的根目录重写到另一个域,apache,.htaccess,redirect,mod-rewrite,Apache,.htaccess,Redirect,Mod Rewrite,我有一个网站,在其根目录中包含一些.zip文件,还有一个名为/files/的文件夹,其中包含其他.zip文件 我已将所有这些文件移动到另一台服务器,但我不想断开链接,因此我需要将到达我的根目录和/files/文件夹的.zip文件请求重定向到另一个子域。我可能希望将来在我的服务器上有一个包含.zip文件的不同文件夹,因此我只需要重定向 mydomain.com/*.zip mydomain.com/files/*.zip mydomain.com/*.zip mydomain.com/files

我有一个网站,在其
根目录中包含一些
.zip
文件,还有一个名为
/files/
的文件夹,其中包含其他
.zip
文件

我已将所有这些文件移动到另一台服务器,但我不想断开链接,因此我需要将到达我的
根目录
/files/
文件夹的
.zip
文件请求重定向到另一个子域。我可能希望将来在我的服务器上有一个包含
.zip
文件的不同文件夹,因此我只需要重定向

mydomain.com/*.zip
mydomain.com/files/*.zip
mydomain.com/*.zip
mydomain.com/files/*.zip
我为
/files/
编写了规则,它运行良好(是的,从该文件夹我现在需要所有类型的文件,仅从根目录
.zip
文件):

但是,对于到达我的域的
根目录的
.zip
文件的所有请求,我也坚持这样做……有什么建议吗?

  • 如果您已将所有
    zip
    文件移动到新域的根目录,请使用

    RewriteRule ^.*?/?([^/]+\.zip)$ http://myotherdomain.com/$1 [R=301,NC,L]
    
  • 如果您保持了相同的文件夹结构(即,您希望将
    /files/*.zip
    移动到
    newdomain.com/files/*.zip
    ),请使用

  • 将重定向所有内容的当前规则保留在顶部的
    /files/

    RewriteRule ^files/(.*) http://myotherdomain.com/$1 [R=301,NC,L]
    
    然后,当您只想重定向
    /files/*.zip
    时,只需在其前面加一个
    #
    即可将其关闭

[QSA]
不是必需的,因为我们没有在这里触及查询字符串

编辑

好的,只重定向

mydomain.com/*.zip
mydomain.com/files/*.zip
mydomain.com/*.zip
mydomain.com/files/*.zip
使用以下规则

RewriteRule ^(?:files/)?([^/]+\.zip)$ http://myotherdomain.com/$1 [R=301,NC,L]

您是否已将root中的zip文件以及files文件夹移动到新域的根目录中?或者,您是否保持了相同的文件夹结构?对不起,我忘了指定,您是对的!我将所有文件都移动到了新域上的同一文件夹。我将所有文件移动到了新域的根目录,因此我使用了第一个规则REWRITE rule^.*/?([^/]+\.zip)$[R=301,NC,L]但它不起作用…firstdomain.com/File2.zip变为newdomain.com/2.zip,因此“File”一词被去掉了..啊,它以
^.*./?
开头。请注意,在
/
之前还有一个额外的
。请再试一次。这是有效的,我还发现了另一种方法,问题是它也适用于其他文件夹!因此,如果我调用它,它也会重定向到新域,并且我希望它只对根目录中的.zip文件或“files”文件夹中的.zip文件执行重定向。所有其他子文件夹中的所有其他.zip文件都不能重定向…我真的不知道该怎么做。@opoloko,删除了全局
.zip
重定向。现在只有
/
/files
中的
.zip
文件会被重定向。不要失去希望。这一次它会按照你想要的方式工作。:)谢谢这确实有效…我一直在努力重写,以及如何特别针对请求的url的开始和结束…你有任何链接/指南可以让我了解更多吗?再次感谢,它的作品很漂亮,只有一行!