我在刚刚部署到暂存环境的新项目中使用 HTML5 Boilerplate 构建脚本。脚本就像一个魅力;它有据可查,因此很容易配置以在我的应用程序中使用。
在阅读完文档后,我决定使用 Paul Irish 的基于 VCS 的部署方法来指向 /publish 目录,并在我的 .htaccess 文件中使用他的文档中的这段代码:
RewriteEngine On
RewriteCond $1 !^publish/
RewriteRule ^(.*)$ publish/$1 [L]
我已经为我的特定设置进行了这样的配置,并且所有内容都指向缩小和连接的文件,就像它应该的那样。这很好,但也可以通过访问 http://[mysite.com]/publish/ 直接浏览 /publish 目录
这似乎有点像一根松散的线,让人悬空。我想知道这里是否有人遇到过这个问题并提出了一个好的解决方案。我不希望用户在 URL 之后输入 /publish/,但我不希望它肯定是可抓取的,而且这样离开它似乎有点草率。
有任何想法吗?
提前致谢
更新:在得到 Gerben 非常感谢的帮助之后,我最终改变了我的想法 - 无需将用户从 /publish 重定向到根 URL,因为用户不会输入 /publish,并且会有永远不要链接到 [site.com]/publish。相反,我在 /publish 目录中的 .htaccess 文件中添加了以下规则。对于发布子目录的任何请求,这都会产生 403 错误(禁止):http ://httpd.apache.org/docs/current/rewrite/flags.html#flag_f
RewriteCond %{THE_REQUEST} publish
RewriteRule .? - [F]
此外,我已将发布目录添加到 robots.txt,以确保搜索机器人不会索引包含相同数据的两组文件。