【问题标题】:Own Image Hosting Page: How to always open an html file but with image given in the url?自己的图像托管页面:如何始终打开一个 html 文件,但在 url 中给出了图像?
【发布时间】:2020-06-07 01:09:31
【问题描述】:

我目前正在开发自己的图片托管网站:https://img.baeni.de

一切正常,但我想改变一些东西。

目前,当从共享图像打开链接时,它只是简单地打开图像。我想用图像打开另一个 html 站点。图片应该是网址中给出的图片。

示例: 访问 img.baeni.de/u/123.png 会打开construct.html 文件并设置 以便url 中给出的图像将显示在该页面上。

重要提示:URL 仍应为 img.baeni.de/u/123.png 而不是 img.baeni.de/construct.html

我不想被灌输,但想了解你们将如何处理此类事情的一些想法。

最好的问候, 巴尼

【问题讨论】:

  • .htaccess redirect 或 mod_rewrite 如果我正确理解您的问题,可能会这样做。
  • 只是一个想法——绝对不是一个完整的答案。
  • 我也想过这个问题。似乎是 url 的一个很好的解决方案!关于如何将图像(例如 123.png)放入 html 文件的问题。我的意思是我只想为所有链接使用一个 html 文件,所以我不能直接在 html 文件中引用图像路径,因为我需要为每个图像创建一个文件,这会导致服务器爆炸。
  • 这就是 .htaccess 可以做的。它可以将变量从 URL 中取出并提供一个“不同的”页面。 URL 不会改变,您只需要服务器上的 1 个文件。查看:stackoverflow.com/questions/14895980/…
  • 我根本不擅长 .htaccess - 所以我对这个问题没有帮助。但那是你可能应该走的路线。本质上,.htaccess 文件将读取 URL 并在“幕后”重写它。因此,将为访问任何 img.baeni.de/u/### 的访问者提供construct.php?id=### 。访问者只会看到他们输入的第一个 URL,而不是构造页面 URL。这发生在“幕后”

标签: javascript html regex .htaccess


【解决方案1】:

我不确定,但这可能对你有用。

将以下内容放在 u/ 文件夹(或者根文件夹)的 .htaccess 中。

RewriteCond %{SCRIPT_FILENAME} !-d RewriteCond %{SCRIPT_FILENAME} !-f RewriteRule ^u/(.*)$ construct.html?img=$1 [QSA]

当访问者到达 img.baeni.de/u/123.png 时,网络服务器实际上会提供页面 img.baeni.de/construct.html?img=123 .png.

您可以像这样使用 javascript 来获取 URL:

// Will get /u/123.png
  var urlstr = window.location.pathname;

// Will turn it into 123.png
  var imgstr = str.split("/").pop();

要在页面加载后加载图像 src,请创建一个容器(如 div)来保存图像。然后 window.onload 可以使用图像或错误图像填充此容器。

<div id="image"></div>

<script>
  // On page load call an immediately invoked function to load the image
  window.onload(

    function(){

      // Will get /u/123.png
      var urlstr = window.location.pathname;

      // Will turn it into 123.png
      var imgstr = "/gfx/" + str.split("/").pop();

      // Error Image
      var errorImg = '/gfx/error.png';

      // Create the image in the div container
      document.getElementById('image').innerHTML="<img src='" + imgstr + "' onerror='this.onerror=null;this.src=\"" + errorImg + "\"'>";

    }()
  );
</script>

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 2011-08-06
  • 2023-03-18
相关资源
最近更新 更多