javascript - 桌面网页,而不是设置动态网站后显示移动设备的移动网页
问题描述
我开发了一个外汇数据网站,我认为最好在台式电脑上查看,因为很多数据都以最简洁的方式排列,因此可以一目了然地查看以提高效率。它工作正常,但是,谷歌感觉不同,如果页面在移动设备上显示不好,显然不会提高 SEO 评级。好的,为此,我使用动态方法重新设计了页面以适应移动屏幕。也就是不使用单独的url,只单独的页面,并且已经实现了以下;
在 index.htm 标题(和所有其他页面)中放置一个备用标记,指向位于 url 主目录的子目录中的移动页面。包括 media="only screen and (max-width: 640px)" 参数。我还放置了一个指向 index.htm 本身和移动页面的规范标签,指向它们各自的桌面页面。视口元标记也在索引标头中。
在 htaccess 文件中添加了一个不同的 HTTP 标头以及 RewriteCond %{HTTPS} off 以将所有访问指示为安全。但是,当我尝试使用 RewriteCond %(HTTP_HOST) ^www\fxchartdata.com$ [NC],将所有 www 访问重定向到简单的 url https://fxchartdata.com时,该网站不会出现在 firefox 和 chrome 上. 它现在显示在 chrome 上,但不显示在 firefox 上。
已经小心地将各自的 css 和支持文件放在正确的目录以及站点地图中。实际上这个和其他各种程序问题是由 Open Element 自动处理的。
该网页仅显示桌面,即使所有适合移动设备的页面都位于 /mobile 目录中。我正在使用 Open Element 作为 Web 开发人员工具。除了编程背景的一般知识外,它使用了大量我并不熟悉的 java 脚本。我还需要一些 php 来处理特定情况,包括正确显示基于文本的数据和电子邮件联系人页面。
简而言之,我所做的任何事情都不会在移动设备上显示正确的页面,即 fxchartdata.com/mobile/m_Home.htm。我承认自己对 Web 开发有点陌生,尽管我自己完成了所有工作。我检查了页面参考并更正了我发现的任何不一致之处,尽管我仍然有可能错过至少一个。
知道我可能遗漏了什么或粗心吗?
桌面 index.htm 部分
<!DOCTYPE HTML>
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="generator" content="openElement (1.57.9)" />
<title> EzPrepForex Trading Preparation</title>
<meta name="description" content="Foreign currency exchange trading preparation tool. Reduces time needed to study the market for the best forex trades." />
<meta name="keywords" content="forex trading preparation,forex trading analysis,forex chart data,forex news,forex data" />
<meta name="copyright" content="2019" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<link rel="shortcut icon" href="favicon.oe.ico?v=50491105200" />
<link id="openElement" rel="stylesheet" type="text/css" href="WEFiles/Css/v02/openElement.css?v=50491105200" />
<link id="OEBase" rel="stylesheet" type="text/css" href="index.css?v=50491105200" />
<!--[if lte IE 7]>
<link rel="stylesheet" type="text/css" href="WEFiles/Css/ie7.css?v=50491105200" />
<![endif]-->
<script type="text/javascript">
var WEInfoPage = {"PHPVersion":"phpOK","OEVersion":"1-57-9","PagePath":"index","Culture":"DEFAULT","LanguageCode":"EN","RelativePath":"","RenderMode":"Export","PageAssociatePath":"index","EditorTexts":null};
</script>
<script type="text/javascript" src="WEFiles/Client/jQuery/1.10.2.js?v=50491105200"></script>
<script type="text/javascript" src="WEFiles/Client/jQuery/migrate.js?v=50491105200"></script>
<script type="text/javascript" src="WEFiles/Client/Common/oe.min.js?v=50491105200"></script>
<link rel="alternate" media="only screen and (max-width: 640px)" href="https://fxchartdata.com/mobile/m_Home.htm" >
<link rel=”canonical” href=”https://fxchartdata.com/index.htm”>
</head>
htaccess
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%
#Protect .htaccess
<Files .htaccess>
order allow,deny
deny from all
</Files>
# another ver to force https
#RewriteCond %{HTTPS} !=on
#RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
#RewriteCond %(HTTP_HOST) ^www\fxchartdata\.com$ [NC]
#RewriteRule ^(.*)$ https://fxchartdata.com/$1 [L,R=301]
#FreeScript
AddDefaultCharset UTF-8
<IfDefine !Free>
<IfModule mod_headers.c>
Header set Cache-Control "private, max-age=0, must-revalidate"
Header set X-UA-Compatible "IE=8; IE=9; IE=10"
Header append Vary User-Agent
</IfModule>
</IfDefine>
解决方案
不使用单独的 url,只使用单独的页面
不确定您在此处对“URL”的定义,但这是“使用单独的 URL”。/index.htm
vs/mobile/m_Home.htm
是两个不同的 URL。
避免“单独 URL”的方法是使用完全响应式设计。
该网页仅显示桌面,即使所有适合移动设备的页面都位于 /mobile 目录中。
您发布的内容中没有任何内容将“桌面”页面(即index.htm
)仅限于桌面用户代理。如果请求/index.htm
URL,所有用户代理都将查看桌面页面,无论设备/用户代理如何。在设置 时Vary: User-Agent
,您实际上似乎并没有根据请求来改变响应User-Agent
?由于桌面和移动用户代理有单独的 URL,因此您需要基于User-Agent
.
请注意Google 爬虫/用户代理,因为它们也需要包含在重定向中。
<link rel=”canonical” href=”https://fxchartdata.com/index.htm”>
您在canonical
链接标签中错误地使用了大引号。
RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%
在文件的顶部,您.htaccess
有“一半”需要删除的指令。
#RewriteCond %(HTTP_HOST) ^www\fxchartdata\.com$ [NC] #RewriteRule ^(.*)$ https://fxchartdata.com/$1 [L,R=301]
很好奇您在问题描述中包含相同的“错字”(或者这是复制/粘贴?)...www\
在上述条件之后您缺少一个字面点。\f
是一个换页符(在正则表达式中),所以上面的内容永远不会匹配 - 所以这个指令实际上不会做任何事情。(令人费解的是,您说该指令使该网站无法在 Firefox 和 Chrome 上访问。这是不可能的。)
如果您没有实现HSTS,那么您应该反转两个规范重定向指令以避免双重重定向。换句话说:
# www to non-www (and HTTPS)
RewriteCond %(HTTP_HOST) ^www\. [NC]
RewriteRule (.*) https://example.com/$1 [L,R=301]
# Force HTTPS
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
谷歌感觉不同,如果页面在移动设备上显示不佳,显然不会提高 SEO 评级
严格来说,这不是真的。如果您的网页在移动设备上的显示效果不佳,那么您的网页在移动搜索中的表现可能不会那么好(可以理解)。但是,这不一定会影响桌面搜索的排名。但是,如果您的页面不适合移动用户,并且您不希望移动用户搜索您的页面,那么您可能不需要定位移动用户 - 但这肯定是一种风险。
推荐阅读
- python - 如何将逗号分隔的数字更改为 int
- android - NotifyDataSetChanged 无法在 arrayadapter 中访问
- image - 尝试所有上下文 docBase 配置后,无法在 jsp 中显示保存在 tomcat 服务器上的静态图像
- ionic-framework - 错误:使用 LoadingController 时出现“未解析的函数或方法存在()”
- python - 我遇到了 tkinter def 无法启动的问题
- vim - 如何在 Windows 10 系统中使用 gitbash 在 Vim 中包含格式化的 Epitech 标准标头?
- sqlite - 如果表没有主键怎么办
- python - 如何在数据中添加随机白噪声
- c++ - 课堂上的一条线,使整个应用程序崩溃。0xC000005 错误
- javascript - 有没有办法使用 Google Apps 脚本中的 ICU/Intl/v8BreakIterator 遍历文档中的单词?