我的服务器上有很多不完整的命名文件夹。它们被称为cdn-1 cdn3 img1等等。我收集了这些文件夹中的所有文件,并将它们放在一个名为cdn的文件夹中。现在,我不希望用户在尝试访问位于cdn-3.website.com/file/img/1.jpg的文件时获得404。相反,有没有办法mod_rewrite这个文件夹,以便即使用户试图访问文件,比如cdn-7382910731293.website.com/file/1.jpeg,它仍然可以工作?这可能是遥不可及的,但我已经看到过这个问题。我发现这样的解决方案的唯一工作代码是单个文件,而不是文件夹。
编辑:这是我到目前为止所尝试过的。它不会起作用。这有什么问题? RewriteRule ^cdn([^/]*).1$ http://cdn.website.com/$1 [L]
答案 0 :(得分:0)
最简单的方法是使用.htaccess到redirect all 404 pages to a single PHP page,这样可以检查新的cdn文件夹中是否存在这样的文件/图像,并将其作为服务器或显示有效的404页面。
在提供图像等时也不要忘记标题; - )
答案 1 :(得分:0)
也许尝试让子域都指向同一个地方(cdn.website.com指向的地方),然后在该域的htaccess中粘贴以下内容:
RewriteCond %{HTTP_HOST} ^(cdn-1|cdn1|img1|etc)\.website\.com
RewriteRule (.*) http://cdn.website.com/$1 [R=301,L]
这应该无缝地工作,只要文件不在同一个地方。也就是说,只有主机名不同,主机名后面的文件路径也不同。 RewriteCond是我认为的正则表达式,所以你应该能够编写它以匹配你需要的任何东西。
我已成功使用此方法将旧域重定向到新域,并将example.com
重定向到www.example.com
。