我有一种情况,整个文件夹的内容不再需要,并将被重定向到主页,除了 6 个左右的文件。该文件夹包含 300 多个文件,因此单独重定向:
redirect 301 /folder/file.html http://www.domain.tld/
redirect 301 /folder/file2.html http://www.domain.tld/
redirect 301 /folder/file3.html http://www.domain.tld/
这需要相当长的时间。在需要完成此操作之前我有一些时间,并且想知道是否有人知道通过使用带有 mod_rewrite 的小正则表达式来实现此目的的好方法。
为了让所有可能使用潜在正确答案的人获得最佳理解,假设我们不想重定向的文件是:
/folder/stay1.html
/folder/stay2.html
/folder/stay3.html
提前感谢这个由知识渊博的人组成的精彩社区,帮助我们这些仍有一些东西要学习的人!
编辑
是否有可能实现这一目标并保留文件夹的基本 url?
/folder/
/folder/index.html
我尝试了以下但没有成功:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/folder(/|/index.html|/stay1.html|/stay2.html|/stay3.html|/etc.html)
RewriteRule ^/?folder/ http://www.domain.tld/ [L,R=301]
编辑正确答案
非常感谢Jon Lin的回答。
/folder/
重定向除少数文件外的所有文件的正确方法/folder/
是:
RewriteEngine On
# Allow /folder/ to remain accessible
RewriteCond %{REQUEST_URI} !^/folder/$
# Allow specified files to remain accessible
RewriteCond %{REQUEST_URI} !^/folder/(index.html|stay1.html|stay2.html|stay3.html|etc.html)
# Redirect all non-specified files to home page
RewriteRule ^/?folder/(.+)$ http://www.domain.tld/ [L,R=301]