【问题标题】:How can I remove index.html from the url of my site that was deployed to Heroku?如何从部署到 Heroku 的网站 url 中删除 index.html?
【发布时间】:2017-08-11 03:40:18
【问题描述】:

我想从我已部署到 Heroku 的网站的 URL 中删除 index.html。我正在做单行 PHP hack,所以我可以在 Heroku 上拥有一个静态站点。我尝试像这样从 .htaccess 中删除它:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html$ /$1 [L,R=301] 

但它没有用。有没有其他方法可以去掉?

【问题讨论】:

  • 你想部署什么?您已使用 php 标记了此问题,但您的文字说您想要一个静态网站? (请注意,Heroku 不是托管静态网站的最佳选择。它针对托管 Web 应用程序而非静态 HTML 进行了优化。)
  • 是的,我知道,但是您可以使用一行 php 部署静态站点。 <?php header( 'Location: /index.html' ) ; ?> 我标记了 php,因为我不确定这是否是导致问题的原因。它可能不是托管此类网站的最佳场所,但至少它是免费的。
  • …有时我会惊讶于人们使用错误的工具来完成这项工作。托管静态网站必须有其他选项更合适且免费。
  • 如果你找到了请告诉我,因为我根本不喜欢使用 Heroku。在这一点上,每当我向 Heroku 部署一些东西时,我只知道要分配 2 多个小时用于调试。
  • @DavidK,这不是 Heroku 的错。这是因为您使用了错误的工具。我不会为您寻找其他主机,但我敦促您这样做。

标签: php .htaccess heroku


【解决方案1】:

由于您似乎喜欢 dirty hacks,如果您想重写特定页面的 URL,您可以使用 javascript 来完成。只需将其放在 html 文件的末尾,在结束 </html> 标记之前。

<script id="urlRewriting">
var newUrl = "/";
window.history.pushState('data', 'Title', newUrl);
</script>

但是在编写更专业的网站时尽量避免这种情况......因为这是肮脏的开发人员行为 ?

【讨论】:

    【解决方案2】:

    我希望这可行,burr 就像 Chris Said 一样,Heroku 是一个糟糕的选择。 无论如何,改变,

    RewriteRule ^(.*)\.html$ /$1 [L,R=301]
    

    RewriteRule ^([^\.]+)$ $1.html [NC,L]
    

    我无法测试重写规则,如果它有效,请通知我。 祝你好运。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-14
      • 2019-05-27
      • 2011-03-31
      • 2014-04-24
      • 2015-05-15
      • 2017-04-07
      • 1970-01-01
      • 2023-01-05
      相关资源
      最近更新 更多