【问题标题】:How to limit RewriteEngine on .htaccess如何在 .htaccess 上限制 RewriteEngine
【发布时间】:2020-10-27 11:10:54
【问题描述】:

我现在对客户的网站有点问题。

基本上,他们在博客页面上的图片会显示在桌面版网站上,但不会显示在智能手机版上。

这是因为虽然他们用于博客的所有照片都已上传到 wordpress,但他们在 HP 访问权限中写下了以下内容

RewriteCond %{REQUEST_URI} !/sp/
RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|iPad|Android|Windows\ Phone)
RewriteRule ^(.*)$ sp/$1 [R]

RewriteBase /
RewriteCond %{REQUEST_URI} /sp/
RewriteCond %{HTTP_USER_AGENT} !(iPod|iPhone|iPad|Android|Windows\ Phone)
RewriteRule ^sp/(.*)$ $1 [R]
RewriteBase /

我对 htaccess 不是特别精通,但我认为这意味着任何时候在列出的设备上查看页面时,都会立即将 sp 标记到域名的末尾。

不幸的是,这会产生一个问题,即图像文件 (.com/wp-content/uploads) 的常规路径被读取为 (.com/sp/wp-content/uploads) ,结果什么也没有。

我想解决这个问题的唯一办法是下载博客的每一张图片并上传一个专门为图片指定的文件夹,尽管这需要相当长的时间。

tl;DR 是否有代码可以用来防止 htaccess 将 sp 添加到服务器中的特定页面?

任何帮助将不胜感激!

【问题讨论】:

  • 首先为移动设备添加/sp/ 有什么特别之处吗?可以删除整个规则吗?如果您希望它更具选择性,您可以为第一个 %{REQUEST_URI}% 检查添加更具体的规则,以将其排除在重写某些 URL 之外。
  • “我可以使用代码来阻止 htaccess 将 sp 添加到服务器中的特定页面吗?” - 你在说什么“页面”?它们究竟有多“具体”,您确定它们的标准是什么?
  • 我认为更好的方式来表达我的问题是如何防止 htaccess 在通过移动设备浏览页面时将 /sp 后缀添加到图像中。此外,该网站的设计方式使得 /sp 是查看为移动设备设计的内容所必需的

标签: html wordpress .htaccess


【解决方案1】:

...当通过移动设备浏览页面时,如何防止 htaccess 将 /sp 后缀添加到图像中。此外,该网站的设计方式使得 /sp 是查看为移动设备设计的内容所必需的

RewriteCond %{REQUEST_URI} !/sp/
RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|iPad|Android|Windows\ Phone)
RewriteRule ^(.*)$ sp/$1 [R]

您可以添加排除图像的条件(即具有图像文件扩展名的请求)。例如:

RewriteCond %{REQUEST_URI} !\.(gif|jpe?g|png|webp)$ [NC]
RewriteCond %{REQUEST_URI} !/sp/
RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|iPad|Android|Windows\ Phone)
RewriteRule ^(.*)$ sp/$1 [R]

注意:通常您应该在重定向中使用 L 标志。

除此之外:这种“外部重定向”对于网站的运行来说不是必需的。重定向所有移动请求(而不是将/sp 正确地作为开始的 URL 部分)效率较低,并且会给您的服务器带来更多负载。

【讨论】:

  • 谢谢,我认为成功了!不幸的是,我们从另一家公司继承了这个客户,而客户不愿意为网站的全面检修付费。就目前而言,我们正在处理我们处理过的卡片。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-08
  • 2014-11-15
  • 2013-08-23
  • 2023-03-04
  • 1970-01-01
  • 1970-01-01
  • 2014-08-25
相关资源
最近更新 更多