影视帝国
本网站QQ群96686038可以加QQ群一起交流经验 影视帝国 或者加telegram群https://t.me/rgzn609

“内不随念转,外不为境迁”– 元音老人

https://blog.51.ca/u-103386/2018/06/17/%E5%86%85%E4%B8%8D%E9%9A%8F%E5%BF%B5%E8%BD%AC%E5%A4%96%E4%B8%8D%E4%B8%BA%E5%A2%83%E8%BF%81-%E5%85%83%E9%9F%B3%E8%80%81%E4%BA%BA/

2018年6月17日 26 没有评论分类: 教育 (全局), 未分类第二难,就难在保护它,不忘记,时时刻刻,行、住、坐、卧都不要忘记保护自己。保护的方法,八个字,即:内,不随念转;外,不为境迁。我们的念头,都是从内心里,咕噜咕噜翻出来的,所以我们常说“家贼难防”,是家贼,不是外来的,是防不胜防。有一首偈子这么说:“学道犹如守禁城,昼防六贼夜惺惺,中军主帅能行令,不动干戈自太平。”这“六贼”说的就是我们的眼、耳、鼻、舌、身、意,“中军主帅”指的是我们的“主人翁”,念头一起,不随它转。外不为境迁,如八风不动,无论利、衰、毁、誉、称、讥、苦、乐,四顺四违,我自如如不动。像苏东坡,他自认为已经八风不动了,于是写诗偈给佛印禅师,而佛印在他的诗偈上批了两个大字:“放屁”,苏东坡不服,过江找佛印理论。佛印见苏东坡怒气冲冲来了,“呵!好一个八风不动!一屁却把你打过江来!”所以说,保护,不忘记,蛮难的。第三难,难在绵密保护之后,保护不死难。要保护,但不能死掉。人们往往保护保护,不要动、不要动,就死掉了。学佛是要活泼泼地,要活泼起妙用啊!不能死掉不动,若死掉不动,就成了死水不藏龙了。透过这三难,就成大道了。也就是说,一,认识本性不疑惑;二,绵密保护不忘记;三,在不忘记保护中,不死,要活泼泼地。三难能透过,一定成就大道。人人都能成道,哪个不能成道啊!个个都能成道。之所以不能成道,第一,不认识本性,执著外相。迷住不放,就完了。我们坏就坏在一天到晚,妄心颠倒,那怎么成道啊;第二,不知道诀窍,修法怎么个修法,不得诀窍。修道不难,要有决窍。第三,晓得诀窍不去做。王阳明先生说:“知而不行,是为不知。”你知道了不去行,不去做,等于不知道。若行而不知,还可以致知。所以行非常重要。我们现在把诀窍公开地跟大家讲,就是大家不肯去做。我们要在行住坐卧、时时刻刻地保护它,看住它,经常要提醒自己:“主人翁,惺惺著”,不是打坐一个时光,别的时间都忘记了,放野马了,那怎么能成道啊。历代祖师都是保护,绵密保护,都是这样子的。就是六祖大师自已,悟道之后,隐藏在打猎的队伍中保护自己,做工夫呵!六祖以后,都是保护啊。后来的“牧牛行”,也都是这样子。“牧牛”,就是放牛,鞭子高高举起,牛鼻绳抓得紧紧的,它只要犯人家禾稼,就把鞭子抽上去。“禾稼”就是动念。念头一动,就把它扭转过来。都是这样子的。所以祖师们常问弟子:“你怎么样了?”有的说:“我三年之后,一切都做得了主了。”又有的说:“三年之后,有如蚊子叮铁牛。”都是这样做工夫。所以古德说:“皮肤脱落尽,唯露一真实。”都脱光了,时时刻刻显出真心。这都是保护成道。不是一悟就成道了,就发神通了。学道人要知道先后,要先悟后通,不是一悟马上就通。“但得本,不愁末。”祖师们都这么说,你只要悟到根本,不愁神通不发生。你现在求,求不到,求到了也是假的,所以求神通是很害人的。坏就坏在我们放不下,真要一切放下,一切能舍,决定成道。

使用GOOGLE SEARCH CONSOLE有效增加网站流量的15个提示

https://www.itbook5.com/2018/12/436/

Google Search Console是Google创建的一款功能强大的免费工具,可帮助网站所有者了解Google如何看待自己的网站。遗憾的是,大多数企业都不知道如何有效利用Google Search Console的全部功能来增加网站流量。在本文中,我们将向您展示如何正确使用Google Search Console来改善您的网站搜索引擎优化并吸引更多访问者。

Google Search Console指南,用于扩展您的WordPress网站

什么是Google Search Console?

Google Search Console是Google提供的免费工具,可帮助网站所有者监控和维护其网站在Google搜索结果中的状态。

它提供了从第一天开始跟踪所需的基本营销数据。它还会提醒您可能影响网站搜索排名的错误,安全问题和索引问题。

您可以在WordPress SEO策略中使用所有这些信息来增加您的网站流量。

令人遗憾的是,大多数企业都没有充分利用Google Search Console的强大功能,因为大多数企业都认为只需将其网站添加到Google Search Console即可。

你可以做的事情还有很多。

如果您没有利用Google Search Console提供的所有强大功能,那么您就错过了。

幸运的是,我们在这里提供帮助。我们已经创建了这个终极Google搜索控制台指南,以帮助您像专业人士一样发展您的网站。

注意:由于这是一本综合指南,我们添加了一个目录以便于导航。

设置Google Search Console

  • 将您的网站添加到Google Search Console
  • 设置首选域名
  • 设置目标国家/地区
  • 添加XML站点地图
  • 将Google Search Console连接到Google Analytics

修复爬行问题

  • 查找并修复搜索索引问题
  • 修复了Google Search Console中的404错误
  • 修复Search Console中的软404错误
  • 修复Search Console中的服务器错误
  • 查找并修复安全问题
  • 修复手动操作并请求审核

发展您的网站

  • 使用Google Search Console增加流量
  • 在Google Search Console中挖掘关键字数据
  • 找到可以轻松排名的低挂关键字
  • 在WordPress中使用关键字数据获得更高的排名
  • 在Google Search Console中使用链接报告
  • 从第三方网站获得更多反向链接
  • 改善内部联系以提升排名

有用的Google Search Console工具

  • 在Search Console中使用结构化数据工具
  • 使用Google Search Console改善移动设备的可用性
  • 掌握抓取工具作为Google工具
  • 从Google搜索中删除网址
  • 添加用户以访问Google Search Console

步骤1.将您的网站添加到Google Search Console

如果您还没有这样做,那么您需要继续将您的网站添加到Google Search Console。它非常简单,只需几分钟。

只需访问Google Search Console网站,然后点击“立即开始”按钮即可。

Google Search Console入门

系统会要求您使用Google / Gmail帐户登录。登录后,您需要输入您的网站网址。

将您的网站添加到Google Search Console

现在,请记住,Google将HTTP和HTTPS视为两种不同的协议。它还将https://www.example.com和https://example.com视为两个不同的网站。

您需要确保输入网站的正确URL。

如果您不确定,请登录您的WordPress管理区域并转到设置»常规页。在那里,您将在站点地址字段中看到您网站的URL。

网站地址

输入您的网站地址后,单击“添加属性”按钮继续。

接下来,系统会要求您验证网站的所有权。有几种方法可以做到这一点,但我们将展示HTML标记方法,因为它是最简单的方法。

使用HTML标记验证您的网站

单击HTML标记将其展开,然后复制其中的代码。

接下来,您需要在WordPress网站上安装并激活“插入页眉和页脚”插件。有关更多详细信息,请参阅有关如何安装WordPress插件的分步指南。

激活后,转到设置»插入页眉和页脚页面并粘贴您之前在“标题中的脚本”框中复制的代码。

添加HTML标记

不要忘记点击“保存”按钮来存储您的更改。

您现在可以返回Google Search Console设置,然后点击“验证”按钮。

验证您对网站的所有权

Google Search Console现在会在您的网站代码中查找HTML标记,并会向您显示成功消息。

成功的消息

就这样。您已成功将自己的网站添加到Google Search Console。您现在可以点击“转到媒体资源”链接访问您的Google Search Console信息中心。

注意:如果在“插入页眉和页脚”插件中添加代码后Google Search Console无法验证您的网站,则需要确保清除WordPress缓存并重试。

步骤2.设置首选域名

Google将带有www且没有www的网址视为两个不同的网页

现在让我们假设您使用https://www.example.com作为您的网址,并且某人以https://example.com链接到您的网站,然后Google会将该链接视为其他网址(不是您的网址)。

由于您无法控制人们如何链接到您的网站,这可能会影响您网站在搜索结果中的效果。

解决此问题的最简单方法是使用Google Search Console中的首选域设置。

为此,您需要切换到旧版Search Console。只需点击左栏中的“转到旧版本”即可。

切换到旧的Google Search Console

Search Console现在将加载旧版本。

要设置首选域,您需要单击齿轮图标,然后选择“站点设置”。

Google Search Console网站设置

在下一个屏幕上,您将看到首选域的三个选项。第一个选项是不设置我们不推荐的首选域名。在此之下,您将看到您的域名使用www并且没有www前缀。

您需要选择在向Google Search Console提交网站时使用的一个。请记住,这应该与您在WordPress设置页面中看到的相同。

不要忘记单击“保存”按钮来存储设置。

现在,Google会在关注您网站的链接时以及在搜索结果中显示时使用您首选的域名。

第3步。设置目标国家/地区

如果您的网站定位到特定国家/地区的受众群体,那么您可以明确告知Google定位该特定国家/地区的用户。

转到旧版Google Search Console,在“搜索流量”菜单下点击“国际定位”。

目标国家

切换到“国家/地区”标签,然后选择要定位的国家/地区。

现在,选择国家/地区并不意味着您的网站不会出现在其他国家/地区的搜索结果中。如果某个网页与其他国家/地区的受众群体相关,那么Google仍会在搜索结果中显示该网页。

但是,设置目标国家/地区有助于Google了解您的目标受众,并可能在本地搜索结果中为您带来轻微的搜索引擎优化。

步骤4.添加XML站点地图

XML站点地图是网站所有者向搜索引擎告知其网站上存在的所有页面的一种方式。它还告诉搜索引擎您网站上的哪些链接比其他链接更重要。

在您的网站上添加XML站点地图有助于搜索引擎更好地抓取您的网站。虽然它不会提高搜索排名,但它肯定可以帮助搜索引擎更有效地索引您的内容。

您需要做的就是安装并激活Yoast SEO插件。激活后,插件将自动为您的网站生成XML站点地图,您可以在如下所示的URL处找到它:

http://example.com/sitemap_index.xml

不要忘记用您自己的域名替换example.com。您现在可以在Google Search Console中提交此网址。

在Google Search Console信息中心下,点击左侧列中的“站点地图”,然后粘贴该网址的最后一部分。

添加您的站点地图网址

单击“提交”按钮以保存更改。

Google Search Console现在会检查您的站点地图并使用它来改善您网站的抓取速度。

步骤5.将Google Search Console连接到Google Analytics

将Google Search Console连接到Google Analytics帐户可帮助您分析Google Analytics中的搜索控制台数据。这为您提供了有关效果最佳的内容和关键字的新视角。

如果您还没有这样做,那么您需要在WordPress网站上安装Google Analytics。

我们建议使用MonsterInsights。它是WordPress最好的Google Analytics插件,它会自动在您的WordPress管理区域中显示来自Google Search Console的热门关键字。

Google Search Console热门关键字报告

现在,为了将Google Search Console与您的Google Analytics帐户相关联,您需要访问适用于您网站的Google Analytics信息中心。从屏幕的左下角,单击“管理”按钮。

切换到Google Analytics管理员视图

Google Analytics现在将切换到管理视图。在这里,您需要单击“属性设置”部分,然后单击“调整搜索控制台”按钮。

调整搜索控制台按钮

在下一个屏幕上,您需要单击“添加”按钮以选择您的网站。

添加属性

Google Analytics现在会将您带到Google搜索控制台网站,向您显示已添加到搜索控制台的所有网站的列表。选择要链接到此Google Analytics媒体资源的网站,然后点击“保存”按钮。

选择您的网站

就是这样,您已成功将Google Search Console数据与Google Analytics帐户相关联。

您现在可以在“收购”报告下的Google Analytics帐户中查看新近未提升的搜索控制台报告。

在Google Analytics报告中搜索控制台数据

您会在第一份报告中找到“目标网页”报告。

对于每个目标网页,您都会看到展示次数(网页在搜索结果中显示的次数),点击次数,点击率(CTR)以及搜索结果中的平均排名。结合该页面的分析参数,如跳出率,会话和每个会话的页面。

点击目标网页会显示将用户带到此目标网页的实际关键字。

每个目标网页的关键字

切换到“国家/地区”报告,您会看到按相同顺序列出的国家/地区。

各国报告Search Console

设备报告将向您显示您的网站在桌面设备,移动设备和平板电脑搜索结果中的效果。

设备报告

查询是这些数据中所有报告中最重要的。它会向您显示Google Analytics报告中缺少的关键字数据。

查询和关键字数据

步骤6.查找并修复搜索索引问题

Google Search Console最有用的功能是您可以解决索引错误。

这些错误可能会阻止搜索引擎抓取您网站上的网页并将其编入索引,从而影响您的搜索排名。

您可以轻松找到这些错误覆盖范围»指数报告。Bàogào.

索引覆盖率报告会显示您网站上的哪些网页被Google编入索引以及哪些网页导致了错误或警告。

Google Search Console中的索引覆盖率报告

向下滚动,您将看到所有错误的详细列表。单击链接将打开详细视图,您还可以在其中找到链接以了解有关错误及其修复方法的更多信息。

查看错误详情

以下是您可能会看到的一些常见索引错误:

  • 404错误 – 此错误表示抓取工具遵循URL并发现404错误。
  • 软404错误 – 当爬网程序看到404错误页面但页面的状态代码正在向浏览器发送200(成功)消息时,会发生此错误。
  • 服务器错误 – 这表示您的网站服务器超时或未响应。如果您的网站流量大,维护不足或因任何其他原因无法使用,则可能会发生这种情况。
  • 没有遵循 – 当Google无法关注内容类型时,会发生此错误。这可能是Flash,javascript,iframe或抓取工具无法获取的其他资源。

现在让我们来看看如何解决其中一些抓取错误。

修复Google Search Console中的404错误

首先,您需要记住,并非所有404错误都是相同的。您可以放心地忽略其中的一些,只修复那些实际上是错误的。

例如,如果您删除了博文并且不想将用户重定向到较新的帖子,则可以让Google看到404错误页面。如果谷歌一直看到404错误,谷歌最终会对该页面进行取消索引。

但是,Google要求您查看这些404错误的原因是您可能不了解它们。例如,您意外删除了某些内容或忘记将用户重定向到新的更新版本。

只需单击“索引覆盖率”报告中的错误,它将显示显示该错误的所有页面。仔细查看页面,如果您看到不应该存在的页面,则复制其URL并在新的浏览器窗口中打开它。

如果您在浏览器中看到404错误页面,则表示您需要修复此页面。

现在,如果它是一个不再存在的页面,但您有一个更新或相似的版本,那么您可能希望将用户重定向到该页面。请参阅我们的指南,了解如何在WordPress中设置重定向。

但是,由于WordPress永久链接结构中的配置错误,有时可能会发生404错误。要解决这个问题,请访问设置»永久链接然后单击保存更改按钮而不更改任何内容。

更新永久链接结构

修复Google Search Console中的软404错误

解决软404错误有点棘手。

基本上,当Google bot看到404错误文档而不是内容时会出现这些错误。但是,您的服务器正在发送200(成功)代码。通常,当显示页面时,您的服务器会发送200个成功代码,而不会出现错误或重定向。

Google Search Console中的软404错误

单击索引覆盖率报告中的Soft 404错误以查看受错误影响的页面列表。

现在,您需要在新的浏览器选项卡中打开该页面以查看正在发生的情况。如果页面显示正确,则可以安全地忽略该错误。

另一方面,如果页面显示404错误文档,那么您可能需要进一步调查。

首先切换到旧的Google Search Console,然后转到抓取»抓取Google页。输入要调查的URL,然后单击“获取”按钮。

通过谷歌获取信息

Search Console现在将以Google Bot的身份获取网址,您将在下面看到它。单击URL将使用源代码视图打开它,您将在其中看到顶部的HTTP状态代码。

状态代码

现在,如果您希望此页面显示404错误,那么它没有正确执行此操作。另一方面,如果该页面应该显示其他内容,那么您需要弄清楚它显示404错误文档的原因。

如果您看到的软404错误是由WordPress搜索功能引起的,那么最简单的解决方案是阻止Google bot抓取搜索网址。

为此,您需要将以下行添加到robots.txt文件中。

  1. User-agent: *
  2. Disallow: /?s=
  3. Disallow: /search/

通常,Google Bot不会抓取搜索网址。但是,一些垃圾邮件发送者试图通过链接到带有随机字符串的搜索网址来垃圾Google搜索控制台报告。这样,他们希望您在Search Console报告中看到他们的链接,然后点击它。

如果受影响的网址不是搜索查询,则您可能希望将其重定向到您网站上的相应网页

修复Google Search Console中的服务器错误

Google Search Console中的服务器错误是由多种原因造成的。最常见的是当您的服务器在爬网期间超时,抛出意外错误或似乎没有联机。

使用“获取Google Bot”工具确保受影响的网址正常运行。

如果它正常工作,那么您可以忽略该错误。如果您使用的是可靠的WordPress托管服务提供商,那么大多数服务器错误都会自动消失。

但是,如果您可以通过访问URL来确认错误,那么您可以执行许多操作来修复它。请参阅我们最常见的WordPress错误指南列表,以查找您看到的特定错误消息的修复程序。

步骤7.查找并修复安全问题

安全问题

安全问题不仅阻止Google抓取您的网站,还可能导致搜索流量突然下降。 Google可能会暂时删除受影响的网页,向用户显示警告和/或删除网页的排名。

在您登录Google Search Console帐户时,概述屏幕上会突出显示安全问题。最常见的安全问题是受恶意软件和特洛伊木马影响的网站。要解决此问题,请参阅我们的指南,了解如何清理黑客入侵的WordPress网站以获得分步说明。

有关详细信息,请参阅我们的文章,了解如何在通过Google取消索引后修复网站。

步骤8.查找手动操作并请求审核

虽然安全问题会自动触发,但人工操作是经过仔细审核后由Google搜索团队的人员施加的惩罚。如果对您的网站采取手动操作,那么这非常重要,可以立即带走您的所有搜索流量。

当网站涉及非法活动,垃圾邮件以及其他欺诈或可疑活动时,通常会发生这些手动操作。

手动操作

单击“手动操作”链接将显示搜索控制台报告中的操作。您还可以找到有关触发它的问题以及如何清理它的详细信息。

删除令人反感的内容后,您可以点击请求审核按钮。您的网站现在将由Google搜索小组审核并重新审核,他们可以决定取消处罚。

步骤9.使用Google Search Console增加流量

现在我们已经介绍了技术部分,让我们通过利用Search Console中提供的数据来实现增加网站流量的有趣部分。

在本部分中,我们将查看关键字数据,找出效果最好的关键字,并发现数百个可以轻松排名并获得更多流量的潜在关键字。

我们还将查看链接以及如何使用它们来提高搜索排名。

准备?让我们开始吧。

在Google Search Console中挖掘关键字数据

关键字是用户在搜索引擎中输入以查找信息的搜索词。

营销人员和网站所有者可以优化其内容,以定位所需的关键字,并提高他们在搜索结果中出现的机会。

以前,网站统计信息和分析报告中提供了关键字数据。谷歌在2013年切换到HTTPS时加密了这些信息。

虽然该数据已从Google Analytics中删除,但仍可在Google Search Console报告中使用。

它可让您全面了解您的网站所排名的关键字,平均排名和展示次数(您的网站针对该关键字展示的次数)。

您可以在Google Search Console报告中查看此信息‘性能’标签。

搜索控制台性能

在顶部,您会看到您的网站在搜索结果中的效果图表。在此之下,您会看到关键字数据,您可以按位置,展示次数和点击率来过滤这些数据。

在Google Search Console中查看热门关键字

您可以通过单击任何列对此数据进行排序,也可以使用过滤器选项缩小结果范围。

按位置过滤关键字数据

您还可以切换到“页面”选项卡,以查看搜索结果中页面的性能。

搜索性能中的页面

单击列表中的任何页面将过滤该页面的结果。然后,您可以切换到“查询”选项卡,以查看将流量带到该特定页面的关键字。

好的,现在我们已经介绍了如何浏览和查看这些数据。让我们看看如何在您的SEO和内容规划中实际使用它。

找到可以轻松排名的低挂关键词

对于许多关键字,您的很多网页可能会在搜索结果的第2页或第3页上排名。这些是您可以轻松处理以获得更高排名并获得更多流量的关键字。

让我们找出那些关键字。

在“效果”报告中,单击过滤器图标,然后选择“位置”。您将寻找平均排名高于7的关键字。

按位置过滤

单击“完成”以应用过滤器。

搜索控制台现在只会显示您的网站在平均排名为7或更高的位置显示的关键字。现在,在位置列上单击两次以按升序对列表进行排序。

按位置排序

当你向下滚动时,你会发现大量的关键字排在7到30之间。所有这些关键词都是低悬的水果,你可以轻松排名更高。

要查看更多结果,请滚动到底部,然后为“每页行数”选择一个更高的数字。

每页行数

在选择要使用的关键字时,您可能希望根据展示次数选择关键字。展示次数越高,这些关键字的搜索流量就越多。

为此,您可以以CSV格式导出数据,然后在电子表格软件中打开它。

下载关键字数据

使用WordPress中的关键字数据获得更高的排名

现在您已经挖掘了具有较高展示次数的低挂关键字,问题是您如何提高这些关键字的排名?

以下提示可帮助您提高这些关键字的排名。

1.通过添加更多有用信息来改进内容

您的网页未针对关键字排名的首要原因是Google发现其他内容更有用。为了解决这个问题,您需要查看您的文章或博文,并添加尽可能多的有用内容。

查看该关键字排在前五位的文章,并更详细地介绍您的文章缺失的所有信息。

我们并不是说您应该添加更多文本。您需要使其更有用,信息量更大,更全面。

2.评估页面搜索引擎优化

使用Yoast SEO的分析工具来改善该文章的页面搜索引擎优化得分。它通过分析内容,关键字密度,可读性,链接等提供了改进页面的实用技巧。

Yoast SEO分析

3.增加用户在该页面上花费的时间

当用户点击搜索结果并花时间查看搜索结果时,Google认为这是成功的。这意味着您的内容需要具有高度吸引力,并立即为用户提供他们正在寻找的信息。

以下是一些可以提高用户参与度的疯狂简单操作。

  • 使用图像 – 用户查找图像比文本更容易查看。添加更多图像使用户更容易扫描信息并使其保持参与。
  • 使用视频 – 视频是最具吸引力的内容形式。向页面添加视频会显着增加用户查看该页面的时间。
  • 使文本更具可读性 – 使用较小的段落,大量的空白区域,更简单的句子,并保持您的风格随意和会话。所有这些都使用户更容易阅读。

有关更多提示,请参阅有关如何增加用户在您网站上花费的时间的文章。

步骤10.在Google Search Console中使用链接报告

链接在SEO中起着重要作用。搜索引擎使用它们作为指标来确定页面的重要程度以及它在搜索结果中的排名。

Google搜索中的“链接”报告可帮助您根据链接查看网站的效果。

它显示外部链接,内部链接,顶部链接网站和顶部链接文本。更重要的是,它显示了热门​​链接网站,他们链接到您网站的频率以及他们链接到的网页数量。

Google Search Console中的链接报告

单击更多可展开任何链接报告。您可以单击任何项​​目进行扩展,并获得该特定项目的更详细结果。

让我们看看如何使用这些报告获得更多反向链接,改善内部链接并提高排名。

搜索控制台会在“热门链接网站”报告中显示已链接到您网站的第三方网站。单击更多链接展开报告。

顶级链接网站

接下来,单击域名以展开报告,您将看到他们链接到的所有页面。现在点击每个页面,您将获得他们链接到该特定页面的确切URL。

指向您的某篇文章的外部链接

以下是如何从中获得更多反向链接的方法。只需访问该网站,看看他们是如何链接到您的。之后,查看他们可以链接您的网站的其他内容。

接下来,只需通过电子邮件或网站上的联系表格联系网站/作者。首先,感谢他们链接到您的文章,然后礼貌地提到他们可能想要包含您的其他文章的链接。

现在,这种直接的方法可能并不总是有效。在这种情况下,你需要有创意。您可以邀请他们为自己的博客撰写客座文章,在文章中留言,在社交媒体上关注,或转发他们的文章。

对您网站上的所有重要外部链接重复此过程。通过不断的努力,您可以获得适当的反向链接,而无需花费任何金钱。

改善内部联系以提升排名

让第三方网站链接到您的内容更加困难。但是,从您自己的网站链接到您自己的内容会更容易。这种做法称为内部链接。

内部链接可帮助搜索引擎了解您网站上不同页面之间的上下文和关系。它还可以帮助他们根据您与页面链接的频率来了解哪些页面很重要。

这就是为什么在网站或博客上写新内容时应该养成内部链接的习惯。

现在让我们看看如何使用Search Console中的链接报告来帮助您构建内部链接。

在Google Search Console中,点击“链接”报告,然后点击“内部链接”列下的“更多”链接。

查看链接报告

此报告显示您与网站上其他网页的关联频率。单击“过滤器”图标,然后选择“目标页面”选项。

Filter links by target page

输入您要改进的页面的URL,然后单击“完成”按钮。

Search Console现在将显示链接到此页面的页数。您可以单击以展开报告以查看所有链接。

指向特定帖子的内部链接

正如您所看到的,本文只链接了5次,也可能来自侧边栏或存档页面。

您现在可以通过从其他热门内容添加本文的内部链接来进行更改。确保只在有意义的情况下链接到文章。添加无意义的链接会产生糟糕的用户体验。

步骤11.使用结构化数据工具

结构化数据也称为Schema.org标记,是一组微数据,您可以将其添加到HTML中,以帮助搜索引擎更好地理解您的内容。 Google使用此数据在搜索结果中显示丰富网页摘要。

Google搜索结果中显示的丰富网页摘要

丰富的代码段使您的网页在搜索结果中更加引人注目。目前,Google会显示有关食谱,评论和产品的丰富网页摘要数据。

许多WordPress主题自动包含一些基本的结构化数据。如果您发布食谱,运行评论网站或在线商店,那么丰富的片段可以为您的网站提供SEO提升。

Google提供了丰富的代码段测试工具,但Google搜索控制台中的结构化数据测试工具实际上更容易使用。

只需切换到旧版Google Search Console即可转到搜索外观»结构化数据页。它将显示在您的所有页面上找到的结构化数据项和需要修复的错误。

结构化数据

真正有用的部分是该工具允许您快速找到错误并修复它们。向下滚动到详细信息部分,您将看到数据类型列表以及Google找到的错误数量。

架构标记错误

点击错误会显示Google发现错误的所有网页。

缺少标记

例如,上面屏幕截图中的第一行显示该页面上的一个项目缺少作者和更新的标记。

单击该行将弹出一个包含更多详细信息的弹出窗口。您将看到Google在该页面上为该特定条目找到的标记。正如您所看到的,它缺少作者和最新更新的信息。

这些是WordPress中最常见的微数据。通常,它出现在存档页面中,网站所有者希望跳过详细信息。为了解决这个问题,我们编辑了主题的functions.php文件并添加了以下代码。

  1. function wpb_entry_meta() {
  2. $time_string = “<time class=”entry-date published updated” datetime=”%1$s”>%2$s</time>”;
  3. if ( get_the_time( “U” ) !== get_the_modified_time( “U” ) ) {
  4. $time_string = “<time class=”entry-date published” datetime=”%1$s”>%2$s</time><time class=”updated” datetime=”%3$s”>%4$s</time>”;
  5. }
  6. $time_string = sprintf( $time_string,
  7. esc_attr( get_the_date( “c” ) ),
  8. esc_html( get_the_date() ),
  9. esc_attr( get_the_modified_date( “c” ) ),
  10. esc_html( get_the_modified_date() )
  11. );
  12. $posted_on = sprintf(
  13. /* translators: %s: post date. */
  14. esc_html_x( “Posted on %s”, “post date”, “design” ),
  15. “” . $time_string . “”
  16. );
  17. $byline = sprintf(
  18. /* translators: %s: post author. */
  19. esc_html_x( “by %s”, “post author”, “design” ),
  20. “<span class=”author vcard”>” . esc_html( get_the_author() ) . “</span>”
  21. );
  22. echo “<span class=”posted-on”>” . $posted_on . “</span><span class=”byline”> ” . $byline . “</span>”; // WPCS: XSS OK.
  23. }
  24. endif;

之后,我们编辑了主题的其他模板文件,这些文件缺少作者和条目的日期信息。在这些模板文件中,我们添加了以下代码,我们想要显示作者和日期。

  1. <?php wpb_entry_meta(); ?>

现在要测试这是否有效,单击“测试实时数据”按钮,您将看到错误消失。

测试实时数据

重复此过程以修复您网站上的所有结构化数据链接

步骤12.使用Search Console提高移动可用性

所有搜索中近63%来自移动设备。这就是为什么谷歌在搜索结果中向移动友好型网站提供搜索引擎优化的原因。

谷歌有一个移动友好的测试工具,可以让你快速检查一个页面。 Search Console中的移动设备可用性报告会告诉您Google如何在移动性能方面看到您的整个网站。

移动可用性

如果您在此页面上看到错误,则表示这些问题可能会影响您的网站在移动搜索中的排名。

您可以单击错误,它将显示受影响的页面。

大多数移动可用性问题都是由编码不当的WordPress主题或插件引起的。解决这些问题的最简单方法是使用更好的响应式WordPress主题。

步骤13.掌握’抓取为Google’工具

通过Google工具获取,您可以快速从网站上获取任何网页,并将其视为Google僵尸网站。这意味着您实际上可以告诉Google机器人获取该页面的副本并显示它在该页面上看到的HTML代码。

Fetch as Google Tool位于旧版Search Console中的“抓取»抓取Google”菜单下。这样更方便,可让您快速访问该工具。

通过谷歌获取信息

在较新版本中,您必须转到索引»覆盖范围,然后单击URL以查看将其作为Google获取的选项。

在新的Search Console信息中心中获取Google

获取URL后,您将看到它显示成功或错误消息。如果成功下载页面,则可以单击以打开其详细信息。

那么你应该寻找什么?此视图最重要的部分是响应代码。如果它是200 OK,则表示Google bot能够成功下载该页面。

响应代码

接下来,您需要检查底部的下载时间。如果它高于1.5秒,那么这意味着您的网站速度很慢,Google僵尸网站在高峰流量期间可能难以抓取您的网站。请参阅我们的指南,了解如何解决WordPress性能和速度问题。

最后,您需要检查其余代码,并将其与您访问网站时看到的源代码进行比较。你会寻找差异或任何可疑/破碎的东西。

立即将您网站的任何网页编入索引

此工具最强大的功能是您可以使用它来快速索引由Google编制的页面。当您在自己的网站上投放时间敏感的广告系列并希望尽快获得搜索流量时,这会非常方便。

只需输入URL并单击“获取”按钮。 Google bot下载页面后,点击“请求索引”按钮。

请求索引

第14步。从Google搜索中删除网址

到目前为止,我们一直专注于使用Search Console获取索引并提高Google搜索中的排名。但是,有时您可能还想从Google搜索中删除内容。

现在,一种方法是将noindex元标记添加到要从搜索结果中删除的页面。但是,根据Google抓取您网站的频率,您的网页可能需要一段时间才能从搜索结果中消失。

Search Console的“删除URL”工具允许您请求从搜索结果中删除URL。切换到较旧版本的Search Console,您将在其中找到它谷歌索引»删除网址菜单。Càidān.

删除网址工具

现在单击“临时隐藏”按钮,然后输入要删除的URL。

注意:删除网址工具只会在90天内隐藏搜索结果中的网页。要使其永久化,您需要删除网站上的内容,以便它出现404错误。

步骤15.添加用户以访问Google Search Console

如果您有一个营销团队或者您雇佣了某人来帮助您使用SEO,那么这些用户可能需要访问Google搜索控制台数据。

通过Search Console,您可以轻松添加用户并授予他们查看所有报告的权限,而无需与他们共享您的Google帐户凭据。

要添加新用户,只需单击设置»用户和权限菜单然后单击“添加用户”按钮。

将新用户添加到Google Search Console

接下来,您需要提供用户有效的Google帐户电子邮件地址,并为他们选择一个角色。

搜索控制台访问新用户

有两种类型的权限级别。完整的权限级别将允许他们访问所有内容,包括添加新用户的功能。受限制的权限将允许他们查看数据但不添加新用户。

选择权限级别后,单击“添加”按钮以保存更改。

您添加的用户现在会收到电子邮件通知,因此他们可以登录并查看您网站的Google Search Console数据。

有用的资源

以下有用的WPBeginner资源将帮助您进一步提高您的网站在搜索引擎中的表现。

  • 终极WordPress SEO指南 – 我们完整的一步一步WordPress SEO指南将引导您完成WordPress SEO设置像专业人士。
  • WordPress性能指南 – 逐步指南,以提高您的WordPress速度和性能,以获得更高的搜索排名和更好的用户体验。
  • WordPress安全指南 – 使用这个完整的WordPress安全指南为初学者保持您的WordPress网站安全。
  • 跟踪用户参与度 – 本指南可帮助您了解如何跟踪您网站上的用户活动,并使用它来规划您的增长策略。
  • 将访问者转换为客户 – 如果您运营在线商店,则本指南将向您展示如何将搜索流量转换为付费客户。

我们希望本文为您提供了一些有关如何更有效地使用Google Search Console来扩展您的网站的好建议。您可能还希望看到有关如何为WordPress网站带来流量的专家提示。

死亡真相:“死亡可能没有你想象的那样可怕”

https://www.bbc.com/zhongwen/simp/amp/science-44715927

死亡真相:“死亡可能没有你想象的那样可怕” 2019年 4月 10日分享平台 Email 分享平台 Facebook 分享平台 Twitter 分享平台 Whatsapp生死树Image caption生命的意义到底是什么?根据世界卫生组织(WHO)估计,未来几年全球将出现死亡高峰。世卫组织说,到2030年,全世界死亡人数将从2015年的5600万人上升到7000万人。出现死亡高峰主要有两个原因,死于心脏病以及癌症病人的增加;其次,人们寿命延长所带来的死亡推迟。谁都知道死是生的终点,人类最终逃脱不了死亡的命运。然而,谈论死亡总是令人忌讳的。或是出于对死亡的担心和恐惧,或许出于宗教及文化等原因。因为死亡的神秘、痛苦、幻灭与虚无。死亡过程但是,英国临终关怀医生凯瑟琳·曼尼克斯(Kathryn Mannix)认为应该打破围绕死亡的禁忌。让人们知道死亡可能并不像人们所想象的那样可怕。最近,英国也鼓励医生在面对时日不多的病人时,与他们展开关于死亡的坦诚对话。曼尼克斯说:“很多时候人们不知道如何谈论死亡这个字眼,所以干脆缄口不言。结果大家在面对亲人死亡时往往不知所措。不知道死亡到底多近多远?”“结果是一片悲伤、忧虑和绝望的景象,”她说。解析人类生死情结:寻找长生不老的真谛假如我们知道了自己的死亡日期和方式百岁寿星在瑞士实现生日愿望”尊严死”死亡究竟是什么感觉凯瑟琳·曼尼克斯Image caption凯瑟琳·曼尼克斯称死亡并不像人们想象的那样可怕曼尼克斯表示,我们应该让大家知道死亡的真相,坦诚地探讨死亡。现年85岁的BBC知名主持人琼·贝克维尔(Joan Bakewell)参与制作和主持了6集有关死亡的系列节目,探讨英国人对死亡的态度,试图揭开死亡的神秘面纱。那么,正常的死亡应该是什么样?是不是像电影、电视中所描绘的那样?根据曼尼克斯的描述:“死亡就像出生一样其实就是一个过程。病人逐渐地变得更加疲倦。随着时间的推移,病人睡的时候多,醒的时候少…… 有时,病人在睡眠过程中处于昏迷状态。这一变化虽然微小但却非常重要。我们叫不醒他们。但当他们醒来时会说他们睡得很香。这时我们就知道这种昏迷对病人来说并不可怕…… 最终他们会一直处于无意识状态。

PHPCMS里Apache服务器的伪静态和定制404页面

http://www.bin012.com/adj/5.html

PHPCMS里Apache服务器的伪静态和定制404页面 binadmin2020-05-26后端技术136 1、首先网站根目录要有.htaccess文件,我做的网站服务器是Apache,所以这里就先不讲nginx服务器环境下了,听说nginx环境更简单。  2、然后直接在.htaccess文件配置网站需要做的伪静态规则 我写一个简单的规则: PHP RewriteEngine On RewriteCond %{Http_HOST} ^Phpcms.com$ [NC] RewriteRule ^(.*)$ Http://www.Phpcms.com/$1 [R=301,L] RewriteRule ^([0-9A-Za-z_]*)/$ index.PHP?m=content&c=index&a=lists&catdir=$1 RewriteRule ^([0-9A-Za-z_]*)/([0-9]+)/?$ index.PHP?m=content&c=index&a=lists&catdir=$1&page=$2 RewriteRule ^([0-9A-Za-z_]*)/([0-9]+)\.Html$ index.PHP?m=content&c=index&a=show&catdir=$1&id=$2   前两句是做301跳转,后面三句就是伪静态规则。 前面加粗是伪静态规则,后面是网站动态url,意思是网站可以通过前面url打开后面url对应的页面。 Phpcms后台扩展里面有url规则管理。修改两个我们自己用   我修改的是id为1和10 的,注意是否生成静态要选否,然后那个名称不能改,category代表是一级和二级栏目,show代表是内容详情页,这是固定的。至于变量,里面有。     注意,这里的规则要和.htaccess文件里面一样,我的规则是 一级栏目/二级栏目:Http://www.xxx.com/xyz/, 如果出现页数的时候就是:Http://www.xxx.com/xyz/page.Html 其实出现页数的url规则也可以是:Http://www.xxx.com/xyz/page/ 这个看个人要求,和url规则一一对应即可 内容详情页:Http://www.xxx.com/xyz/id.Html 修改完成后在添加栏目上,选择全否,然后url规则选择自定义的规则     修改完成后刷新缓存和更新url,这个时候打开网站会出现“生成栏目伪静态显示/%7B$catdir%7D/的错误。”。我参考的是这位大神的文章Https://blog.csdn.net/ougexingfuba/article/details/80371186,但是在实际过程中,发现有些地方不用改,改了反而有问题,咱也不是学PHP的,我也不知道怎么修复。所以我改的地方是两个地方。 3,文件,Phpcms\Phpcms\modules\content\index.PHP中   搜索   $catid = intval($_GET[‘catid’]);   一共两处,修改为   PHP if(isset ($_GET[‘catid’])){ $catid = intval($_GET[‘catid’]); }else{ $catdir=$_GET[‘catdir’]; $s=$this->_getCategoryId($catdir); $catid=$s[0][catid]; } 然后,在最下面   } 这个 大括号的前面增加一个函数,如下      PHP protected function _getCategoryId($catdir){ $this->category_db = pc_base::load_model(‘category_model’); $result = $this->category_db->select(array(‘catdir’=>$catdir)); // print_r($result); return $result; }   4、/Phpcms/modules/admin/classes/cache_api.class.PHP找到下边代码 public function category() //这个方法里边的下边这个方法 PHP if(!preg_match(‘/^(Http|Https):\/\//’, $r[‘url’])) { $r[‘url’] = siteurl($r[‘siteid’]).$r[‘url’]; } elseif ($r[‘isHtml’]) { $r[‘isdomain’] = ‘1’; } $categorys[$r[‘catid’]] = $r; 修改成下边 PHP if(!preg_match(‘/^(Http|https):\/\//’, $r[‘url’])) { $r[‘url’] = preg_replace(‘/(\{\$catdir\})/i’,$r[‘catdir’],siteurl($r[‘siteid’]).$r[‘url’]); } elseif ($r[‘isHtml’]) { $r[‘isdomain’] = ‘1’; } $r[‘url’] = preg_replace(‘/(\{\$catdir\})/i’,$r[‘catdir’],$r[‘url’]); $categorys[$r[‘catid’]] = $r; 然后找到/Phpcms/modules/admin/category.PHP里边的public function cache() 里边有跟上边相同的代码修改了就可以了! 自此,使用Phpcms在Apache服务器做伪静态规则完美解决 404页面定制 很简单,直接在htaccess规则里面加上一个指向根目录404页面的规则 PHP ErrorDocument 404 http://www.bin012.com/404.Html 注意:要在前面加 然后把404页面放到网站根目录下即可声明:本文由bin012发布,如需转载请注明出处。原地址:http://www.bin012.com/adj/5.html

display(‘./Public/error/404.html’); } } ?>

Apache之Rewrite和RewriteRule规则梳理以及http强转https的配置总结

https://www.cnblogs.com/kevingrace/p/9565123.html

随笔- 557  文章- 39  评论- 825 

Apache之Rewrite和RewriteRule规则梳理以及http强转https的配置总结

一. 简单实例介绍
一般来说,apache配置好http和https后,如果想要做http强转到https,需要设置url重定向规则,大致需要下面几个步骤即可完成配置:

12345678910111213141516171819202122232425262728291)在httpd.conf文件里使下面模块生效[root@back ~]# cat /usr/local/apache/conf/httpd.conf.....LoadModule ssl_module modules/mod_ssl.so                      #打开https功能模块.....LoadModule rewrite_module modules/mod_rewrite.so              #打开重写跳转功能模块 2)httpd.conf配置文件或者是在httpd-vhost.conf文件里修改[root@back ~]# cat /usr/local/apache/conf/httpd.conf.......DocumentRoot "/data/vhosts"<Directory "/data/vhosts">Options FollowSymLinks MultiViews IncludesAllowOverride All                                     #AllowOverride None一定要修改为AllowOverride All!!Require all granted</Directory> 3)在网站根目录下面添加该文件".htaccess"目录访问控制文件,并添加如下内容:RewriteEngine on         RewriteBase /            RewriteCond %{SERVER_PORT} !^443$   RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]     含义是这样的:为了让用户访问传统的http://转到https://上来,用了一下rewrite规则:第一句:启动rewrite引擎第三句:rewrite的条件是访问的服务器端口不是443端口第四句:这是正则表达式,^是开头,$是结束,/?表示有没有/都可以(0或1个),(.*)是任何数量的任意字符整句的意思是讲:启动rewrite模块,将所有访问非443端口的域名请求,url地址内容不变,将http://变成https://

上面的配置实现了将所有域名的http跳转为https,如果只是针对某一个url的https跳转,则配置情况会有所不同,如下:

1234567891011实现单个url类型的https跳转需求:访问http://bo.kevin.com/beijing/...... 强制跳转到https://bo.kevin.com/beijing/......配置如下: [root@docker-test2 web]# cat .htaccess<IfModule mod_rewrite.c>RewriteEngine onRewriteCond %{SERVER_PORT} 80RewriteCond %{REQUEST_URI} /beijingRewriteRule ^(.*$) https://bobo.kevin.com/beijing/ [R,L]</IfModule>

===========Apache下http跳转至https的案例说明=============
1) 示例一

1234RewriteEngine onRewriteCond %{SERVER_PORT} !^443$RewriteCond %{REQUEST_URI} !^/tz.phpRewriteRule (.*) https://%{SERVER_NAME}/$1 [R]

%{SERVER_PORT}     说明访问端口
%{REQUEST_URI}      比如如果url是 http://localhost/tz.php,则是指 /tz.php
%{SERVER_NAME}    比如如果url是 http://localhost/tz.php,则是指 localhost

以上规则的意思是,如果访问的url的端口不是443,且访问页面不是tz.php,则应用RewriteRule这条规则。这样便实现了:访问了 http://localhost/index.php 或者 http://localhost/admin/index.php 等页面的时候会自动跳转到 https://localhost/index.php 或者 https://localhost/admin/index.php,但是访问 http://localhost/tz.php 的时候就不会做任何跳转,也就是说 http://localhost/tz.php 和 https://localhost/tz.php 两个地址都可以访问。

2) 示例二
.htaccess 在每一层独立服务根目录下都存在,例如

1234全部网站根目录为   /var/www/html/.htaccess士博博客根目录位   /var/www/html/shibo-wordpress/.htaccess士博论坛根目录位   /var/www/html/shibo-discuz/.htaccess士博学习根目录位   /var/www/html/shibo-study/.htaccess

HTTP 80 强制转 HTTPS
全站采用https协议访问,所以需要http重定向到https,只需要在.htaccess加入下面规则
在相应的网站根目录新建 .htaccess

例如,在士博博客的网站根目录下,新建/var/www/html/shibo-wordpress/.htaccess,内容如下:

123RewriteEngine OnRewriteCond %{SERVER_PORT} 80RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]

或者内容为:

123RewriteEngine OnRewriteCond %{HTTPS} !=onRewriteRule ^(.*) https://%{SERVER_NAME}/$1 [R,L]

强制301重定向 HTTPS

123456<IfModule mod_rewrite.c>RewriteEngine onRewriteBase /RewriteCond %{SERVER_PORT} !^443$RewriteRule (.*) https://%{SERVER_NAME}/$1 [R=301,L]</IfModule>

站点绑定多个域名
只允许kevin.con和www.kevin.com 跳转

12345RewriteEngine OnRewriteCond %{SERVER_PORT} 80RewriteCond %{HTTP_HOST} ^kevin.com [NC,OR]RewriteCond %{HTTP_HOST} ^www.kevin.com [NC]RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]

高级用法 (可选)

12345678910111213141516171819RewriteEngine on # 强制HTTPSRewriteCond %{HTTPS} !=on [OR]RewriteCond %{SERVER_PORT} 80 # 某些页面强制RewriteCond %{REQUEST_URI} ^something_secure [OR]RewriteCond %{REQUEST_URI} ^something_else_secureRewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] # 强制HTTPRewriteCond %{HTTPS} =on [OR]RewriteCond %{SERVER_PORT} 443 # 某些页面强制RewriteCond %{REQUEST_URI} ^something_public [OR]RewriteCond %{REQUEST_URI} ^something_else_publicRewriteRule .* http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Apache mod_rewrite实现HTTP和HTTPS重定向跳转

当你的站点使用了HTTPS之后,你可能会想把所有的HTTP请求(即端口80的请求),全部都重定向至HTTPS(即端口443)。这时候你可以用以下的方式来做到:(Apache mod_rewrite)把这段代码放在.htaccess文件,即可实现HTTP到HTTPS的重定向。

12345RewriteEngine OnRewriteBase /RewriteCond %{SERVER_PORT} 80RewriteRule ^(.*)$ https://blog.shibo.com/$1 [R=301,L]</IfModule>

而当你又想用回HTTP的时候,反过来就可以了:

123456<IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /RewriteCond %{SERVER_PORT} 443RewriteRule ^(.*)$ https://blog.shibo.com/$1 [R=301,L]</IfModule>

其中R=301表示Moved Permanently,即告诉搜索引擎或者浏览器下去直接访问后者的地址,如果只是试验性地重定向,可以使用R=302(Found),临时跳转

VirtualHost 添加重定向
需要注意实测以上方法,对于下面需求场景,都无效!!下面项目场景:
1) 在我的根目录下 /var/www/htmp/
2) 配置有多个网站,如士博博客(/var/www/htmp/shibo-blog/)、士博论坛(/var/www/htmp/shibo-forum/)、士博学习(/var/www/htmp/shibo-study/)等
3) 对于士博博客的http请求,全部定向到https博客;对于士博论坛的http请求,全部定向到https论坛;

最后,解决方案是在 VirtualHost 节点里,添加如下配置:

123RewriteEngine onRewriteCond   %{HTTPS} !=onRewriteRule   ^(.*)  https://%{SERVER_NAME}$1 [L,R]

完整配置参数如下:

1234567891011121314# blog<VirtualHost *:80>ServerAdmin yanggang_2050@163.comDocumentRoot /var/www/html/wordpressServerName blog.shibo.com RewriteEngine onRewriteCond   %{HTTPS} !=onRewriteRule   ^(.*)  https://%{SERVER_NAME}$1 [L,R] DirectoryIndex index.phpErrorLog /var/log/blog.shibo.com-error_logCustomLog /var/log/blog.shibo.com-access_log common</VirtualHost>

3) 示例三

在启用了https之后,还要保证之前的http端口可以打开,http的80端口是有两个网址的,所以这就导致需要把原来的带www和不带www的kevin.com域名同时指定一个https网址上面(https://kevin.com),需要做两个Apache的301重定向,这个其实是很简单的,最简单的做法是直接在 .htaccess文件中添加两个301即可,如下所示:

12345rewritecond %{http_host} ^www.kevin.com [ncRewriteRule ^(.*)?$ https://kevin.com/$1 [R=301,L]  RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)?$ https://kevin.com/$1 [R=301,L]

第一个 301 很自然就是带 www 的跳转到新的 https 上面了,而下面的301重定向则是判断如果端口不是80的话,则进行重定向,这样的话,带www和不带www的域名就一起跳转到 https 一个网址上面了,当然这种全站做301的方法是比较暴力的,通常情况下我们只要把主域名做个301就可以了,我这里是因为启用了原来的两个域名。

4) 示例四:一些其它的 Apache http 跳转到 https 的方法

方法1

123456RewriteEngine On RewriteBase / RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://kevin.com/$1 [R=301,L]  #这样跳转的好处是独立IP主机也支持,访问ip能自动跳转到https

方法2

12345RewriteEngine onRewriteCond %{SERVER_PORT} !^443$RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [R=301,L] #整站跳转

方法3

1234567RewriteEngine onRewriteBase /yourfolderRewriteCond %{SERVER_PORT} !^443$#RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [R=301,L]RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] #以上至针对某个目录跳转, yourfolder就是目录名

方法4

1234567RewriteEngine onRewriteCond %{SERVER_PORT} 80RewriteCond %{REQUEST_URI} /beijingRewriteRule ^(.*$) https://test.kevin.com/beijing/ [R,L] #针对url中的次级path路径,比如上面的beijing,上面配置可以实现:访问http://test.kevin.com/beijing/....  跳转到 https://test.kevin.com/beijing/.....

方法5

123456789101112131415161718# 强制HTTPS方式访问,对WWW或顶级域名不做跳转。RewriteEngine OnRewriteCond %{SERVER_PORT} 80RewriteRule ^(.*)$ https://www.kevin.com/$1 [L,R=301] #强制HTTPS方式访问,并自动将顶级域名跳转到WWW。RewriteEngine OnRewriteCond %{HTTP_HOST} !^www.kevin.com$ [NC]RewriteRule ^(.*)$ https://www.kevin.com/$1 [L,R=301]RewriteCond %{SERVER_PORT} 80RewriteRule ^(.*)$ https://www.kevin.com/$1 [L,R=301] #强制HTTPS方式访问,并自动将WWW跳转到顶级域名。RewriteEngine OnRewriteCond %{HTTP_HOST} !^kevin.com$ [NC]RewriteRule ^(.*)$ https://kevin.com/$1 [L,R=301]RewriteCond %{SERVER_PORT} 80RewriteRule ^(.*)$ https://kevin.com/$1 [L,R=301]

方法6

123456redirect 301 /你的网页 https://你的主机+网页 #针对某个网页跳转 比如:redirect 301 /beijing.html https://www.kevin.com/beijing.html

方法7

1234567891011121314151617181920下面是一个http跳转https的配置修改根目录.htaccess文件,内容配置如下: <IfModule mod_rewrite.c>Options +FollowSymlinksRewriteEngine On #thinkphp去掉index.phpRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] #http自动跳转到httpsRewriteCond %{SERVER_PORT} !^443$ #只有匹配对应的域名才会跳转RewriteCond %{SERVER_NAME} ^hrsc.cc|www.hrsc.cc$RewriteRule (.*) https://%{SERVER_NAME}/$1 [R] </IfModule>

                          Apache的https证书免费申请和http->https跳转配置                         

免费https证书可以参考 (apache和nginx都可以使用,效果很强悍!):
https://github.com/Neilpang/acme.sh#3-install-the-issued-cert-to-apachenginx-etc
https://my.oschina.net/jianhui1980/blog/1612469
https://www.cnblogs.com/jxlwqq/p/7492274.html (推荐用这个链接,智能从apache配置中自动完成配置, 不需要指定网站根目录)

配置记录如下 (确保服务器的80和443端口在防火墙里已经提前放行):

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111===========================================================================================配置http: [root@test-web-php extra]# cat httpd-vhosts.conf<VirtualHost *:80>ServerAdmin webmaster@example.comDocumentRoot "/www/wwwroot/www.kevin.com/web"ServerName 0207917c.www.kevin.comServerAlias www.kevin.comerrorDocument 404 /404.htmlErrorLog "/www/wwwlogs/www.kevin.com-error_log"CustomLog "/www/wwwlogs/www.kevin.com-access_log" combined #DENY FILES<Files ~ (\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)$>Order allow,denyDeny from all</Files> #PHP<FilesMatch \.php$>SetHandler "proxy:unix:/tmp/php-cgi-70.sock|fcgi://localhost"</FilesMatch> #PATH<Directory "/www/wwwroot/www.kevin.com/web">SetOutputFilter DEFLATEOptions FollowSymLinksAllowOverride AllRequire all grantedDirectoryIndex index.php index.html index.htm default.php default.html default.htm</Directory></VirtualHost> ===========================================================================================配置https: [root@test-web-php extra]# cat httpd-ssl.confListen 0.0.0.0:443SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4SSLHonorCipherOrder onSSLProtocol all -SSLv3SSLProxyProtocol all -SSLv3SSLPassPhraseDialog  builtinSSLSessionCache        "shmcb:/www/server/apache/logs/ssl_scache(512000)"SSLSessionCacheTimeout  300 <VirtualHost *:443>ServerAdmin webmaster@example.comDocumentRoot "/www/wwwroot/www.kevin.com/web"ServerName  www.kevin.comServerAlias www.kevin.comerrorDocument 404 /404.htmlSSLEngine onSSLCertificateFile "/home/ubuntu/www/ssl/cert.pem"SSLCertificateKeyFile "/home/ubuntu/www/ssl/key.pem"SSLCertificateChainFile "/home/ubuntu/www/ssl/fullchain.pem"ErrorLog "/www/wwwlogs/www.kevin.com-error_log"CustomLog "/www/wwwlogs/www.kevin.com-access_log" combined #DENY FILES<Files ~ (\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)$>Order allow,denyDeny from all</Files> #PHP<FilesMatch \.php$>SetHandler "proxy:unix:/tmp/php-cgi-70.sock|fcgi://localhost"</FilesMatch> #PATH<Directory "/www/wwwroot/www.kevin.com/web">SetOutputFilter DEFLATEOptions FollowSymLinksAllowOverride AllRequire all grantedDirectoryIndex index.php index.html index.htm default.php default.html default.htm</Directory></VirtualHost> ===========================================================================================配置http->https强转 [root@test-web-php extra]# cat /www/wwwroot/www.kevin.com/web/.htaccess<IfModule mod_rewrite.c>Options +FollowSymlinks -MultiviewsRewriteEngine on # RewriteBase /RewriteCond %{SERVER_PORT} !^443$RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R] # if a directory or a file exists, use it directlyRewriteCond %{REQUEST_FILENAME} !-f # otherwise forward it to index.phpRewriteRule . index.php</IfModule># General setting to properly handle LimeSurvey paths# AcceptPathInfo on ===========================================================================================证书路径: [root@test-web-php extra]# ll /home/ubuntu/www/ssl/total 12-rw-r--r-- 1 root root 1903 May 23 00:53 cert.pem-rw-r--r-- 1 root root 3551 May 23 00:53 fullchain.pem-rw------- 1 root root 1679 May 23 00:53 key.pem

二. Apache中 RewriteRule跳转规则参数

Apache模块mod_rewrite提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求。它支持每个完整规则可以拥有不限数量的子规则以及附加条件规则的灵活而且强大的URL操作机制。此URL操作可以依赖于各种测试,比如服务器变量、环境变量、HTTP头、时间标记,甚至各种格式的用于匹配URL组成部分的查找数据库。

mod_rewrite模块可以操作URL的所有部分(包括路径信息部分),在服务器级的(httpd.conf)和目录级的(.htaccess)配置都有效,还可以生成最终请求字符串。此重写操作的结果可以是内部子处理,也可以是外部请求的转向,甚至还可以是内部代理处理。

以下重点介绍下RewriteRule 的规则以及参数说明。RewriteRule指令是重写引擎的根本。此指令可以多次使用。每个指令定义一个简单的重写规则。这些规则的定义顺序尤为重要——在运行时,规则是按这个顺序逐一生效的。

配置格式:
RewriteRule Pattern Substitution [flags]

1) Pattern是一个作用于当前URL的perl兼容的正则表达式。
“当前URL”是指该规则生效时刻的URL的值。它可能与被请求的URL截然不同,因为其他规则可能在此之前已经发生匹配并对它做了改动。

2) Substitution是当原始URL与Pattern相匹配时,用来替代(或替换)的字符串。除了纯文本,还可以包含:
–  对Pattern的反向引用($N)
–  对最后匹配的RewriteCond的反向引用(%N)
–  规则条件测试字符串(%{VARNAME})中的服务器变量
–  映射函数调用(${mapname:key|default})

3) [flags]标记作为RewriteRule指令的第三个参数,是一个包含以逗号分隔的下列标记的列表:

3.1) ‘chain|C‘(链接下一规则)
此标记使当前规则与下一个规则相链接。它产生这样的效果:
如果一个规则被匹配,则继续处理其后继规则,也就是这个标记不起作用;
如果该规则不被匹配,则其后继规则将被跳过。

比如:
在一个目录级规则中执行一个外部重定向时,你可能需要删除”.www”(此处不应该出现”.www”)。
‘cookie|CO=NAME:VAL:domain[:lifetime[:path]]'(设置cookie):在客户端设置一个cookie。cookie的名称是NAME,值是VAL。
domain是该cookie的域,比如’.apache.org’,可选的lifetime是cookie的有效期(分钟),可选的path是cookie的路径。

3.2) ‘env|E=VAR:VAL'(设置环境变量)
此标记将环境变量VAR的值设为VAL,VAL可以包含可扩展的正则表达式反向引用($N和%N)。此标记可以多次使用以设置多个变量。
这些变量可以在其后许多情况下被间接引用,通常是在XSSI(<!–#echo var=”VAR”–>)或CGI($ENV{‘VAR’})中,也可以在后继的
RewriteCond指令的CondPattern参数中通过%{ENV:VAR}引用。使用它可以记住从URL中剥离的信息。

3.3) ‘forbidden|F‘(强制禁止URL)
强制禁止当前URL,也就是立即反馈一个HTTP响应码403(被禁止的)。使用这个标记,可以链接若干个RewriteConds来有条件地阻塞某些URL。

3.4) ‘gone|G‘(强制废弃URL)
强制当前URL为已废弃,也就是立即反馈一个HTTP响应码410(已废弃的)。使用这个标记,可以标明页面已经被废弃而不存在了。

3.5) ‘handler|H=Content-handler'(强制指定内容处理器)
强自制定目标文件的内容处理器为Content-handler。例如,用来模拟mod_alias模块的ScriptAlias指令,以强制映射文件夹内的所有文件都
由”cgi-script”处理器处理。

3.6) ‘last|L‘(结尾规则)
立即停止重写操作,并不再应用其他重写规则。它对应于Perl中的last命令或C语言中的break命令。
这个标记用于阻止当前已被重写的URL被后继规则再次重写。例如,使用它可以重写根路径的URL(‘/’)为实际存在的URL(比如:’/e/www/’)。

3.7) ‘next|N‘(从头再来)
重新执行重写操作(从第一个规则重新开始)。此时再次进行处理的URL已经不是原始的URL了,而是经最后一个重写规则处理过的URL。
它对应于Perl中的next命令或C语言中的continue命令。此标记可以重新开始重写操作(立即回到循环的开头)。但是要小心,不要制造死循环!

3.8) ‘nocase|NC‘(忽略大小写)
它使Pattern忽略大小写,也就是在Pattern与当前URL匹配时,’A-Z’和’a-z’没有区别。

3.9) ‘noescape|NE‘(在输出中不对URI进行转义)
此标记阻止mod_rewrite对重写结果应用常规的URI转义规则。 一般情况下,特殊字符(‘%’, ‘$’, ‘;’等)会被转义为等值的十六进制编码(‘%25’, ‘%24’, ‘%3B’等)。
此标记可以阻止这样的转义,以允许百分号等符号出现在输出中,比如:RewriteRule /foo/(.*) /bar?arg=P1\%3d$1 [R,NE] ,可以使’/foo/zed转向到一个安全的请求’/bar?arg=P1=zed’。

3.10) ‘nosubreq|NS‘(不对内部子请求进行处理)
在当前请求是一个内部子请求时,此标记强制重写引擎跳过该重写规则。比如,在mod_include试图搜索目录默认文件(index.xxx)时,Apache会在内部产生子请求。对于子请求,重写规则不一定有用,而且如果整个规则集都起作用,它甚至可能会引发错误。所以,可以用这个标记来排除某些规则。
使用原则:如果你为URL添加了CGI脚本前缀,以强制它们由CGI脚本处理,但对子请求处理的出错率(或资源开销)很高,在这种情况下,可使用这个标记。

3.11) ‘proxy|P‘(强制为代理)
此标记使替换成分被内部地强制作为代理请求发送,并立即中断重写处理,然后把处理移交给mod_proxy模块。
你必须确保此替换串是一个能够被mod_proxy处理的有效URI(比如以http://hostname开头),否则将得到一个代理模块返回的错误。
使用这个标记,可以把某些远程成分映射到本地服务器域名空间,从而增强了ProxyPass指令的功能。
注意:要使用这个功能,必须已经启用了mod_proxy模块。

3.12) ‘passthrough|PT‘(移交给下一个处理器)
此标记强制重写引擎将内部request_rec结构中的uri字段设置为filename字段的值,这个小小的修改使得RewriteRule指令的输出能够被(从URI转换到文件名的)Alias, ScriptAlias, Redirect等指令进行后续处理。

举一个能说明其含义的例子:
如果要将/abc重写为/def, 然后再使用mod_alias将/def转换为/ghi,可以这样:
RewriteRule ^/abc(.*) /def$1 [PT]
Alias /def /ghi

如果省略了PT标记,虽然将uri=/abc/…重写为filename=/def/…的部分运作正常,但是后续的mod_alias在试图将URI转换到文件名时会遭遇失效。
注意:如果需要混合使用多个将URI转换到文件名的模块时,就必须使用这个标记。此处混合使用mod_alias和mod_rewrite就是个典型的例子。

3.13) ‘qsappend|QSA‘(追加查询字符串)
此标记强制重写引擎在已有的替换字符串中追加一个查询字符串,而不是简单的替换。如果需要通过重写规则在请求串中增加信息,就可以使用这个标记。

3.14) ‘redirect|R [=code]'(强制重定向)
若Substitution以http://thishost[:thisport]/(使新的URL成为一个URI)开头,可以强制性执行一个外部重定向。如果没有指定code,则产生一个HTTP响应码302(临时性移动)。如果需要使用在300-400范围内的其他响应代码,只需在此指定即可(或使用下列符号名称之一:temp(默认), permanent, seeother)。使用它可以把规范化的URL反馈给客户端,如将”/~”重写为”/u/”,或始终对/u/user加上斜杠,等等。

注意:在使用这个标记时,必须确保该替换字段是一个有效的URL。否则,它会指向一个无效的位置!并且要记住,此标记本身只是对URL加上http://thishost[:thisport]/前缀,重写操作仍然会继续进行。通常,你还会希望停止重写操作而立即重定向,那么就还需要使用’L’标记。

3.15) ‘skip|S=num'(跳过后继规则)
此标记强制重写引擎跳过当前匹配规则之后的num个规则。它可以模拟if-then-else结构:最后一个规则是then从句,而被跳过的skip=N个规则是else从句。注意:它和’chain|C’标记是不同的!

3.16)’type|T=MIME-type'(强制MIME类型)
强制目标文件的MIME类型为MIME-type,可以用来基于某些特定条件强制设置内容类型。比如,下面的指令可以让.php文件在以.phps扩展名调用的情况下由mod_php按照PHP源代码的MIME类型(application/x-httpd-php-source)显示:RewriteRule ^(.+\.php)s$ $1 [T=application/x-httpd-php-source]

===========RewriteRule跳转设置案例===========
下列配置内容都写到.htaccess文件中,且 .htaccess文件放到apache站点根目录下.

1) 如果http://kevin.com/foo/bar不存在,则跳转到http://other.kevin.com/foo/bar  (.htaccess文件放在kevin.com域名的root根目录下)

1234RewriteEngine OnRewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule ^(.*)$ http://other.kevin.com/$1 [R]

2) 将http://kevin.com/foo/bar的GET请求重定向到http://kevin.com/bar(或是将http://kevin.com/foo/bar.html请求重定向到http://kevin.com/bar.html)。用PHP程序处理POST请求,而不是试图重定向一个帖子(这不太可能奏效)。 (.htaccess文件放在kevin.com域名的root根目录下):

12345RewriteEngine OnRewriteCond   %{REQUEST_METHOD}   GETRewriteRule   ^/?([^/]*\.html?|[^\./]*)[:;,\.]*$   /$1   [R,L,NS]RewriteCond   %{REQUEST_METHOD}   POSTRewriteRule   ^/?([^/]*\.html?|[^\./]*)[:;,\.]*$   /foo/show.php   [L,NS]

3) 用一个PHP程序/foo/show.php.处理对没有扩展名的top-level.html文件和文件的所有请求.实现http://www.kevin.com/bobo跳转到http://www.kevin.com/bobo.html  (.htaccess文件放在www.kevin.com域名的root根目录下):

1RewriteRule   ^/?([^/]*\.html?|[^\./]*)[:;,\.]*$   /foo/show.php   [L,NS]

三、Apache Rewrite 规则详解

1) Rewrite规则简介:
Rewirte主要的功能就是实现URL的跳转,它的正则表达式是基于Perl语言。可基于服务器级的(httpd.conf)和目录级的(.htaccess)两种方式。如果要想用到rewrite模块,必须先安装或加载rewrite模块。方法有两种一种是编译apache的时候就直接安装rewrite模块,别一种是编译apache时以DSO模式安装apache,然后再利用源码和apxs来安装rewrite模块。

基于服务器级的(httpd.conf)有两种方法:
一种是在httpd.conf的全局下直接利用RewriteEngine on来打开rewrite功能;
另一种是在局部里利用RewriteEngine on来打开rewrite功能;

下面将会举例说明,需要注意的是,必须在每个virtualhost里用RewriteEngine on来打开rewrite功能。否则virtualhost里没有RewriteEngine on, 它里面的规则也不会生效。

基于目录级的(.htaccess),要注意一点那就是必须打开此目录的FollowSymLinks属性且在.htaccess里要声明RewriteEngine on。

2) 案例说明:

案例一
下面是在一个虚拟主机里定义的规则。功能是把client请求的主机前缀不是www.kevin.com和192.168.100.29都跳转到主机前缀为http://www.kevin.com,避免当用户在地址栏写入http://kevin.com时不能以会员方式登录网站。

1234567891011NameVirtualHost 192.168.100.8:80 ServerAdminDocumentRoot "/web/webapp"ServerName www.kevin.com.cnServerName kevin.com.cnRewriteEngine onRewriteCond   %{HTTP_HOST}   !^www.kevin.cn   [NC]  RewriteCond   %{HTTP_HOST}   !^192.168.10.29   [NC]  RewriteCond   %{HTTP_HOST}   !^$  RewriteRule   ^/(.*)   http://www.kevin.cn/  [L] 

以上配置解释:
RewriteEngine on      表示打开rewirte功能
RewriteCond %{HTTP_HOST} !^www.kevin.com [NC]       表示声明Client请求的主机中前缀不是www.kevin.com,[NC]的意思是忽略大小写
RewriteCond %{HTTP_HOST} !^192.168.100.29 [NC]       表示声明Client请求的主机中前缀不是192.168.100.29,[NC]的意思是忽略大小写
RewriteCond %{HTTP_HOST} !^$       表示声明Client请求的主机中前缀不为空
RewriteRule ^/(.*) http://www.kevin.com/ [L]       表示如果Client请求的主机中的前缀符合上述条件,则直接进行跳转到http://www.kevin.com/,[L]意味着立即停止重写操作,并不再应用其他重写规则。这里的.*是指匹配所有URL中不包含换行字符,()括号的功能是把所有的字符做一个标记,以便于后面的应用。$1就是引用前面里的(.*)字符。

案例二
将输入 test.kevin.com 的域名时跳转到tech.kevin.com

12345678listen 8080NameVirtualHost 192.168.10.25:8080ServerAdminDocumentRoot  "/usr/local/www/apache22/data1/"ServerName  tech.kevin.comRewriteEngine onRewriteCond   %{HTTP_HOST}   ^test.kevin.com  [NC]RewriteRule   ^/(.*)   tech.kevin.com  [L]

3) Apache mod_rewrite规则重写的标志一览(上面其实已经介绍了)
3.1)  R[=code](force redirect) 强制外部重定向
强制在替代字符串加上http://thishost[:thisport]/前缀重定向到外部的URL.如果code不指定,将用缺省的302 HTTP状态码。
3.2)  F(force URL to be forbidden)禁用URL,返回403HTTP状态码。
3.3)  G(force URL to be gone) 强制URL为GONE,返回410HTTP状态码。
3.4)  P(force proxy) 强制使用代理转发。
3.5)  L(last rule) 表明当前规则是最后一条规则,停止分析以后规则的重写。
3.6)  N(next round) 重新从第一条规则开始运行重写过程。
3.7)  C(chained with next rule) 与下一条规则关联
如果规则匹配则正常处理,该标志无效,如果不匹配,那么下面所有关联的规则都跳过。
3.8)  T=MIME-type(force MIME type) 强制MIME类型
3.9)  NS (used only if no internal sub-request) 只用于不是内部子请求
3.10)  NC(no case) 不区分大小写
3.11)  QSA(query string append) 追加请求字符串
3.12)  NE(no URI escaping of output) 不再输出转义特殊字符
例如:

1RewriteRule /foo/(.*) /bar?arg=P1\%3d$1 [R,NE]         #能正确的将/foo/zoo转换成/bar?arg=P1=zed

3.13)  PT(pass through to next handler) 传递给下一个处理
例如:

12RewriteRule ^/abc(.*) /def$1 [PT]      #将会交给/def规则处理lias /def /ghi

3.14)  S=num(skip next rule(s)) 跳过num条规则
3.15)  E=VAR:VAL(set environment variable) 设置环境变量

4) Apache rewrite例子集合
在httpd中将一个域名转发到另一个域名,新域名为www.kevin.com, 更加简短好记。这时需要将原来的域名kevin.cn, 以及论坛所在地址kevin.com/forums/定向到新的域名,以便用户可以找到,并且使原来的论坛 URL 继续有效而不出现 404 未找到,比如原来的http://www.kevin.com/forums/f60.html, 让它在新的域名下继续有效,点击后转发到http://bbs.kevin.com/f60.html, 这就需要用apache的Mod_rewrite功能来实现。
在.htaccess中添加下面的重定向规则:

1234567RewriteEngine On# Redirect webhosting-kevin.com/forums to bbs.kevin.comRewriteCond   %{REQUEST_URI}   ^/forums/RewriteRule    /forums/(.*)    http://bbs.kevin.com/$1   [R=permanent,L]# Redirect webhosting-kevin.com to kevin.comRewriteCond   %{REQUEST_URI}   !^/forums/RewriteRule   /(.*)   http://www.kevin.com/$1   [R=permanent,L]

5) URL重定向

5.1) 案例一
访问   http://www.kevin.com/xxx.php   重定向跳转到   http://www.kevin.com/xxx/
访问   http://yyy.kevin.com   重定向跳转到   http://www.kevin.com/user.php?username=yyy

12345678RewriteEngine OnRewriteCond   %{HTTP_HOST}   ^www.kevin.comRewriteCond   %{REQUEST_URI}   !^user\.php$RewriteCond   %{REQUEST_URI}   \.php$RewriteRule    (.*)\.php$   http://www.kevin.com/$1/  [R]RewriteCond   %{HTTP_HOST}   !^www.kevin.comRewriteRule   ^(.+) %{HTTP_HOST}   [C]RewriteRule   ^([^\.]+)\.kevin\.com   http://www.kevin.com/user.php?username=$1

5.2) 例子二
/type.php?typeid=*   重定向跳转到   /type*.html
/type.php?typeid=*&page=*    重定向跳转到   /type*page*.html

12RewriteRule   ^/type([0-9]+).html$   /type.php?typeid=$1   [PT]RewriteRule   ^/type([0-9]+)page([0-9]+).html$   /type.php?typeid=$1&page=$2   [PT]

6) 使用Apache的URL Rewrite配置多用户虚拟服务器
要实现这个功能,首先要在DNS服务器上打开域名的泛域名解析(自己做或者找域名服务商做)。
比如,我就把 *.kevin.com和 *.zzz.net全部解析到了我的这台Linux Server上。然后,看一下我的Apache中关于*.kevin.com的虚拟主机的设定。

1234567891011121314151617#*.com,*.kevin.net ServerAdminDocumentRoot  /home/www/www.kevin.comServerName dns.kevin.comServerAlias dns.kevin.com kevin.com kevin.net *.kevin.com *.kevin.netCustomLog /var/log/httpd/zzz/access_log.log" commonErrorLog /var/log/httpd/zzz/error_log.log"AllowOverride NoneOrder deny,allow#AddDefaultCharset GB2312  RewriteEngine onRewriteCond   %{HTTP_HOST}   ^[^.]+\.zzz\.(com|net)$RewriteRule   ^(.+) %{HTTP_HOST}$1  [C]RewriteRule   ^([^.]+)\.zzz\.(com|net)(.*)$   /home/www/www.kevin.com/sylvan$3?un=$1&%{QUERY_STRING}   [L]

在上面这段设置中,把*.kevin.net和*.kevin.com 的Document Root都设定到了/home/www/www.kevin.com,后面都配置了URL Rewrite规则。
RewriteEngine on      #打开URL Rewrite功能
RewriteCond %{HTTP_HOST} ^[^.]+.zzz.(com|net)$     #匹配条件,如果用户输入的URL中主机名是类似 xxxx.kevin.com 或者 xxxx.kevin.net 就执行下面一句
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]    #把用户输入完整的地址(GET方式的参数除外)作为参数传给下一个规则,[C]是Chain串联下一个规则的意思
RewriteRule ^([^.]+)\.zzz\.(com|net)(.*)$ /home/www/www.kevin.com/sylvan$3?un=$1&%{QUERY_STRING} [L]
# 最关键的是这一句,使用证则表达式解析用户输入的URL地址,把主机名中的用户名信息作为名为un的参数传给/home/www/www.kevin.com目录下的脚本,并在后面跟上用户输入的GET方式的传入参数。并指明这是最后一条规则([L]规则)。注意,在这一句中指明的重写后的地址用的是服务器上的绝对路径,这是内部跳转。如果使用http://xxxx这样的URL格式,则被称为外部跳转。使用外部跳转的话,浏览着的浏览器中的URL地址会改变成新的地址,而使用内部跳转则浏览器中的地址不发生改变,看上去更像实际的二级域名虚拟服务器。

这样设置后,重启Apache服务器,测试一下,就大功告成了!

四、分享13个mod_rewrite 应用实例

1) 给子域名加www标记

123RewriteCond   %{HTTP_HOST}   ^([a-z.]+)?example\.com$ [NC]RewriteCond   %{HTTP_HOST}   !^www\. [NC]RewriteRule   .?   http://www.%1example.com%{REQUEST_URI}   [R=301,L]

这个规则抓取二级域名的%1变量,如果不是以www开始,那么就加www,以前的域名以及{REQUEST_URI}会跟在其后。

2) 去掉域名中的www标记

12RewriteCond   %{HTTP_HOST}   !^example\.com$   [NC]RewriteRule   .?   http://example.com%{REQUEST_URI}   [R=301,L]

3) 去掉www标记,但是保存子域名

12RewriteCond   %{HTTP_HOST}   ^www\.(([a-z0-9_]+\.)?example\.com)$   [NC]RewriteRule   .?   http://%1%{REQUEST_URI}   [R=301,L]

这里,当匹配到1%变量以后,子域名才会在%2(内部原子)中抓取到,而我们需要的正是这个%1变量。

4) 防止图片盗链
一些站长不择手段的将你的图片盗链在他们网站上,耗费你的带宽。你可以加一下代码阻止这种行为。

123RewriteCond   %{HTTP_REFERER}   !^$RewriteCond    %{HTTP_REFERER}   !^http://(www\.)?example\.com/   [NC]RewriteRule   \.(gif|jpg|png)$   - [F]

如果{HTTP_REFERER}值不为空,或者不是来自你自己的域名,这个规则用[F]FLAG阻止以gif|jpg|png 结尾的URL 
如果对这种盗链你是坚决鄙视的,你还可以改变图片,让访问盗链网站的用户知道该网站正在盗用你的图片。

123RewriteCond   %{HTTP_REFERER}   !^$RewriteCond   %{HTTP_REFERER}   !^http://(www\.)?example\.com/.*$ [NC]RewriteRule   \.(gif|jpg|png)$   http://你的图片地址   [R=301,L]

除了阻止图片盗链链接,以上规则将其盗链的图片全部替换成了你设置的图片。 
你还可以阻止特定域名盗链你的图片:

12RewriteCond   %{HTTP_REFERER}   !^http://(www\.)?leech_site\.com/   [NC]RewriteRule   \.(gif|jpg|png)$   - [F,L]

这个规则将阻止域名黑名单上所有的图片链接请求。 
当然以上这些规则都是以{HTTP_REFERER}获取域名为基础的,如果你想改用成IP地址,用{REMOTE_ADDR}就可以了。

5) 如果文件不存在重定向到404页面
如果你的主机没有提供404页面重定向服务,那么我们自己创建。

123RewriteCond   %{REQUEST_FILENAME}   !-fRewriteCond   %{REQUEST_FILENAME}   !-dRewriteRule   .?   /404.php   [L]

这里-f匹配的是存在的文件名,-d匹配的存在的路径名。这段代码在进行404重定向之前,会判断你的文件名以及路径名是否存在。你还可以在404页面上加一个?url=$1参数:

1RewriteRule ^/?(.*)$ /404.php?url=$1 [L]

这样,你的404页面就可以做一些其他的事情,例如默认信心,发一个邮件提醒,加一个搜索,等等。

6) 重命名目录

如果你想在网站上重命名目录,试试这个:

1RewriteRule   ^/?old_directory/([a-z/.]+)$   new_directory/$1   [R=301,L]

在规则里我添加了一个“.”(注意不是代表得所有字符,前面有转义符)来匹配文件的后缀名。

7) 将.html后缀名转换成.php

前提是.html文件能继续访问的情况下,更新你的网站链接。 

1RewriteRule   ^/?([a-z/]+)\.html$   $1.php   [L]

这不是一个网页重定向,所以访问者是不可见的。让他作为一个永久重定向(可见的),将FLAG修改[R=301,L]。

8) 创建无文件后缀名链接

如果你想使你的PHP网站的链接更加简洁易记-或者隐藏文件的后缀名,试试这个: 

1RewriteRule   ^/?([a-z]+)$   $1.php   [L]

如果网站混有PHP以及HTML文件,你可以用RewriteCond先判断该后缀的文件是否存在,然后进行替换

1234RewriteCond   %{REQUEST_FILENAME}.php   -fRewriteRule   ^/?([a-zA-Z0-9]+)$   $1.php   [L]RewriteCond   %{REQUEST_FILENAME}.html   -fRewriteRule   ^/?([a-zA-Z0-9]+)$   $1.html   [L]

如果文件是以.php为后缀,这条规则将被执行。

9) 检查查询变量里的特定参数

如果在URL里面有一个特殊的参数,你可用RewriteCond鉴别其是否存在

12RewriteCond   %{QUERY_STRING}   !uniquekey=RewriteRule   ^/?script_that_requires_uniquekey\.php$   other_script.php   [QSA,L]

以上规则将检查{QUERY_STRING}里面的uniquekey参数是否存在,如果{REQUEST_URI}值为script_that_requires_uniquekey,将会定向到新的URL。 

10)删除查询变量

Apache的mod_rewrite模块会自动辨识查询变量,除非你做了以下改动: 

a).分配一个新的查询参数(你可以用[QSA,L]FLAG保存最初的查询变量) 

b).在文件名后面加一个“?”(比如index.php?)。符号“?”不会在浏览器的地址栏里显示。

11) 用新的格式展示当前URI 

如果这就是我们当前正在运行的URLs:/index.php?id=nnnn。我们非常希望将其更改成/nnnn并且让搜索引擎以新格式展现。首先,我们为了让搜索引擎更新成新的,得将旧的URLs重定向到新的格式,但是,我们还得保证以前的index.php照样能够运行。

实现以上功能,诀窍就在于在查询变量中加了一个访问者看不到的标记符“marker”。我们只将查询变量中没有出现“marker”标记的链接进行重定向,然后将原有的链接替换成新的格式,并且通过[QSA]FLAG在已有的参数加一个“marker”标记。以下为实现的方式: 

1234RewriteCond   %{QUERY_STRING}   !markerRewriteCond   %{QUERY_STRING}   id=([-a-zA-Z0-9_+]+)RewriteRule   ^/?index\.php$   %1?   [R=301,L]RewriteRule   ^/?([-a-zA-Z0-9_+]+)$   index.php?marker&id=$1  [L]

这里,原先的URL:http://www.example.com/index.php?id=nnnn,不包含marker,所以被第一个规则永久重定向到http://www.example.com/nnnn,第二个规则将http://www.example.com/nnnn反定向到http://www.example.com/index.php?marker&id=nnnn,并且加了marker以及id=nnnn两个变量,最后mod_rewrite就开始进行处理过程。

第二次匹配,marker被匹配,所以忽略第一条规则,这里有一个“.”字符会出现在http://www.example.com/index.php?marker&id=nnnn中,所以第二条规则也会被忽略,这样我们就完成了。

注意,这个解决方案要求Apache的一些扩展功能,所以如果你的网站放于在共享主机中会遇到很多障碍。

12) 保证安全服务启用

Apache可以用两种方法辨别你是否开启了安全服务,分别引用{HTTPS}和{SERVER_PORT}变量: 

123RewriteCond   %{REQUEST_URI}   ^secure_page\.php$RewriteCond   %{HTTPS}   !onRewriteRule   ^/?(secure_page\.php)$   https://www.kevin.com/$1 [R=301,L]

以上规则测试{REQUEST_URI}值是否等于我们的安全页代码,并且{HTTPS}不等于on。如果这两个条件同时满足,请求将被重定向到安全服务URI.另外你可用{SERVER_PORT}做同样的测试,443是常用的安全服务端口 

123RewriteCond    %{REQUEST_URI}    ^secure_page\.php$RewriteCond    %{SERVER_PORT}    !^443$RewriteRule    ^/?(secure_page\.php)$    https://www.kevin.com/$1   [R=301,L]

13) 在特定的页面上强制执行安全服务 

遇到同一个服务器根目录下分别有一个安全服务域名和一个非安全服务域名,所以你就需要用RewriteCond 判断安全服务端口是否占用,并且只将以下列表的页面要求为安全服务: 

12RewriteCond    %{SERVER_PORT}    !^443$RewriteRule    ^/?(page1|page2|page3|page4|page5)$    https://www.kevin.com/%1  [R=301,L]

以下是怎样将没有设置成安全服务的页面返回到80端口:

12RewriteCond    %{ SERVER_PORT }   ^443$RewriteRule   !^/?(page6|page7|page8|page9)$   zzz.com%{REQUEST_URI} [R=301,L]

五、由于有些例子是针对特殊路径或特别情况的,以下列出一些例子供参考:

目标重写设置说明
规范化URLRewriteRule   ^/~([^/]+)/?(.*)   /u/$1/$2 [R]将/~user重写为/u/user的形式
 RewriteRule   ^/([uge])/([^/]+)$   /$1/$2/ [R]将/u/user末尾漏掉的/补上
   
规范化HostNameRewriteCond   %{HTTP_HOST}   !^fully\.qualified\.domain\.name   [NC]域名不合格
 RewriteCond   %{HTTP_HOST}   !^$不空
 RewriteCond   %{SERVER_PORT}   !^80$不是80端口
 RewriteRule   ^/(.*)   http://fully.qualified.domain.name:%{SERVER_PORT}/$1   [L,R]重写
 RewriteCond   %{HTTP_HOST}   !^fully\.qualified\.domain\.name   [NC] 
 RewriteCond   %{HTTP_HOST}   !^$ 
 RewriteRule   ^/(.*)   http://fully.qualified.domain.name/$1   [L,R] 
   
URL根目录转移RewriteEngine on 
 RewriteRule   ^/$   /e/www/ [R]从/移到/e/www/
   
末尾目录补斜线RewriteEngine on 
(目录范围内)RewriteBase   /~quux/ 
 RewriteRule   ^foo$   foo/   [R]/~quux/foo是一个目录,补/
   
 RewriteEngine on 
 RewriteBase   /~quux/ 
 RewriteCond   %{REQUEST_FILENAME}   -d如果请文件名是个目录
 RewriteRule   ^(.+[^/])$   $1/ [R]URL末尾不是斜线时补上
   
Web集群RewriteEngine on 
 RewriteMap   user-to-host   txt:/path/to/map.user-to-host用户-服务器映射
 RewriteMap   group-to-host   txt:/path/to/map.group-to-host组-服务器映射
 RewriteMap   entity-to-host   txt:/path/to/map.entity-to-host实体-服务器映射
 RewriteRule   ^/u/([^/]+)/?(.*)   http://${user-to-host:$1|server0}/u/$1/$2用户均衡
 RewriteRule   ^/g/([^/]+)/?(.*)   http://${group-to-host:$1|server0}/g/$1/$2组均衡
 RewriteRule   ^/e/([^/]+)/?(.*)   http://${entity-to-host:$1|server0}/e/$1/$2实体均衡
 RewriteRule   ^/([uge])/([^/]+)/?$   /$1/$2/.www/ 
 RewriteRule   ^/([uge])/([^/]+)/([^.]+.+)   /$1/$2/.www/$3\ 
   
URL根目录搬迁RewriteEngine on 
 RewriteRule   ^/~(.+)   http://newserver/~$1   [R,L]到其它服务器
   
所用户名首字母分RewriteEngine on 
 RewriteRule   ^/~(([a-z])[a-z0-9]+)(.*)   /home/$2/$1/.www$3内一层括号为$2
   
NCSA imagemap移RewriteEngine on 
植为mod_imapRewriteRule   ^/cgi-bin/imagemap(.*)   $1   [PT] 
   
多目录查找资源RewriteEngine on 
 # first try to find it in custom/… 
 RewriteCond   /your/docroot/dir1/%{REQUEST_FILENAME}   -f 
 RewriteRule   ^(.+) /your/docroot/dir1/$1   [L] 
 # second try to find it in pub/… 
 RewriteCond   /your/docroot/dir2/%{REQUEST_FILENAME}   -f 
 RewriteRule   ^(.+)   /your/docroot/dir2/$1   [L] 
 # else go on for other Alias or ScriptAlias directives, 
 RewriteRule   ^(.+)   – [PT] 
   
据URL设置环境变量RewriteEngine on 
 RewriteRule   ^(.*)/S=([^/]+)/(.*)   $1/$3 [E=STATUS:$2] 
   
虚拟主机RewriteEngine on 
 RewriteCond   %{HTTP_HOST}   ^www\.[^.]+\.host\.com$基于用户名
 RewriteRule   ^(.+)   %{HTTP_HOST}$1   [C] 
 RewriteRule   ^www\.([^.]+)\.host\.com(.*)   /home/$1$2 
   
内外人有别RewriteEngine on 
 RewriteCond   %{REMOTE_HOST}   !^.+\.ourdomain\.com$基于远程主机
 RewriteRule   ^(/~.+)   http://www.somewhere.com/$1   [R,L] 
   
错误重定向RewriteEngine on 
 RewriteCond   /your/docroot/%{REQUEST_FILENAME}   !-f不是regular文件
 RewriteRule   ^(.+)   http://webserverB.dom/$1 
   
程序处理特殊协议RewriteRule   ^xredirect:(.+)   /path/to/nph-xredirect.cgi/$1 \Xredirect协议
 [T=application/x-httpd-cgi,L] 
   
最近镜像下载RewriteEngine on 
 RewriteMap   multiplex   txt:/path/to/map.cxan顶级域名与最近ftp服务器映射
 RewriteRule   ^/CxAN/(.*)   %{REMOTE_HOST}::$1 [C] 
 RewriteRule   ^.+\.([a-zA-Z]+)::(.*)$   ${multiplex:$1|ftp.default.dom}$2   [R,L]据顶级域名不同提供不同的FTP服务器
   
基于时间重写RewriteEngine on 
 RewriteCond   %{TIME_HOUR}%{TIME_MIN}   >0700 
 RewriteCond   %{TIME_HOUR}%{TIME_MIN}   <1900 
 RewriteRule   ^foo\.html$   foo.day.html白天为早晚7点间
 RewriteRule   ^foo\.html$   foo.night.html其余为夜间
   
向前兼容扩展名RewriteEngine on 
 RewriteBase /~quux/ 
 # parse out basename, but remember the fact 
 RewriteRule   ^(.*)\.html$   $1   [C,E=WasHTML:yes] 
 # rewrite to document.phtml if exists 
 RewriteCond   %{REQUEST_FILENAME}.phtml -f如果存在$1.phtml则重写
 RewriteRule   ^(.*)$   $1.phtml   [S=1] 
 # else reverse the previous basename cutout 
 RewriteCond   %{ENV:WasHTML}   ^yes$如果不存在$1.phtml,则保持不变
 RewriteRule   ^(.*)$   $1.html 
   
文件改名(目录级)RewriteEngine on内部重写
 RewriteBase   /~quux/ 
 RewriteRule   ^foo\.html$   bar.html 
   
 RewriteEngine on重定向由客户端再次提交
 RewriteBase   /~quux/ 
 RewriteRule   ^foo\.html$   bar.html   [R] 
   
据浏览器类型重写RewriteCond   %{HTTP_USER_AGENT}   ^Mozilla/3.* 
 RewriteRule   ^foo\.html$ foo.NS.html   [L] 
 RewriteCond   %HTTP_USER_AGENT}   ^Lynx/.* [OR] 
 RewriteCond   %{HTTP_USER_AGENT}   ^Mozilla/[12].* 
 RewriteRule   ^foo\.html$   foo.20.html [L] 
 RewriteRule   ^foo\.html$   foo.32.html [L] 
   
动态镜像远程资源RewriteEngine on 
 RewriteBase   /~quux/ 
 RewriteRule   ^hotsheet/(.*)$   http://www.tstimpreso.com/hotsheet/$1   [P]利用了代理模块
   
 RewriteEngine on 
 RewriteBase   /~quux/ 
 RewriteRule   ^usa-news\.html$   http://www.quux-corp.com/news/index.html [P] 
   
反向动态镜像RewriteEngine on 
 RewriteCond   /mirror/of/remotesite/$1   -U 
 RewriteRule   ^http://www\.remotesite\.com/(.*)$   /mirror/of/remotesite/$1 
   
负载均衡RewriteEngine on利用代理实现round-robin效果
 RewriteMap   lb   prg:/path/to/lb.pl 
 RewriteRule   ^/(.+)$   ${lb:$1} [P,L] 
   
 #!/path/to/perl 
 $| = 1; 
 $name = “www”; # the hostname base 
 $first = 1; # the first server (not 0 here, because 0 is myself) 
 $last = 5; # the last server in the round-robin 
 $domain = “foo.dom”; # the domainname 
 $cnt = 0; 
 while () { 
 $cnt = (($cnt+1) % ($last+1-$first)); 
 $server = sprintf(“%s%d.%s”, $name, $cnt+$first, $domain); 
 print “http://$server/$_”; 
 } 
 ##EOF## 
   
静态页面变脚本RewriteEngine on 
 RewriteBase   /~quux/ 
 RewriteRule   ^foo\.html$   foo.cgi   [T=application/x-httpd-cgi] 
   
阻击机器人RewriteCond   %{HTTP_USER_AGENT}   ^NameOfBadRobot.* 
 RewriteCond   %{REMOTE_ADDR}   ^123\.45\.67\.[8-9]$ 
 RewriteRule   ^/~quux/foo/arc/.+   – [F] 
   
阻止盗连你的图片RewriteCond   %{HTTP_REFERER}   !^$ 
 RewriteCond   %{HTTP_REFERER}   !^http://www.quux-corp.de/~quux/.*$   [NC]自己的连接可不能被阻止
 RewriteRule   .*\.gif$   – [F] 
   
 RewriteCond   %{HTTP_REFERER}   !^$ 
 RewriteCond   %{HTTP_REFERER}   !.*/foo-with-gif\.html$ 
 RewriteRule   ^inlined-in-foo\.gif$   – [F] 
   
拒绝某些主机访问RewriteEngine on 
 RewriteMap   hosts-deny   txt:/path/to/hosts.deny 
 RewriteCond   ${hosts-deny:%{REMOTE_HOST}|NOT-FOUND}   !=NOT-FOUND   [OR] 
 RewriteCond   ${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND}   !=NOT-FOUND 
 RewriteRule   ^/.*   – [F] 
   
用户授权RewriteCond   %{REMOTE_IDENT}@%{REMOTE_HOST}   !^friend1@client1.quux-corp\.com$ 
 RewriteCond   %{REMOTE_IDENT}@%{REMOTE_HOST}   !^friend2@client2.quux-corp\.com$ 
 RewriteCond   %{REMOTE_IDENT}@%{REMOTE_HOST}   !^friend3@client3.quux-corp\.com$ 
 RewriteRule   ^/~quux/only-for-friends/   – [F] 
   
外部重写程序模板RewriteEngine on 
 RewriteMap   quux-map   prg:/path/to/map.quux.pl 
 RewriteRule   ^/~quux/(.*)$   /~quux/${quux-map:$1} 
   
 #!/path/to/perl 
 $| = 1; 
 while (<>) { 
 s|^foo/|bar/|; 
 print $_; 
 } 
   
搜索引擎友好RewriteRule   ^/products$   /content.php 
 RewriteRule   ^/products/([0-9]+)$   /content.php?id=$1 
 RewriteRule   ^/products/([0-9]+),([ad]*),([0-9]{0,3}),([0-9]*),([0-9]*$)   /marso/content.php?id=$1&sort=$2&order=$3&start=$4 

==============================================================================
针对apache的route路由转发设置,注意下面几个配置点

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361)修改httpd.conf主配置文件[root@kevin01 ~]# cat /usr/local/apache/conf/httpd.conf........LoadModule rewrite_module modules/mod_rewrite.so        #打开重写转发功能模块 DocumentRoot "/data/www/public"                                    <Directory "/data/www/public">                                          # apache的站点根目录注意修改Options FollowSymLinks MultiViews IncludesAllowOverride All                                                             #要将默认的None改为AllRequire all granted</Directory> DirectoryIndex index.html index.php                                    #网站首页默认读出index.php和index.html 2)配置vhosts虚拟主机[root@kevin01 ~]# cat /usr/local/apache/conf/extra/kevin.conf<VirtualHost *:80>ServerName www.kevin-inc.comDocumentRoot /data/www/publicDirectoryIndex index.php index.html ErrorLog "/var/log/httpd/www.kevin.com-error_log"CustomLog "/var/log/httpd/www.kevin.com-access_log" common </VirtualHost> 3)配置站点根目录/data/www/public路径下的.htaccess文件[root@kevin01 ~]# cat /data/www/public/.htaccess<IfModule mod_rewrite.c>Options +FollowSymlinks -MultiviewsRewriteEngine On RewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]</IfModule> 4)重启apache服务[root@kevin01 ~]# /usr/local/apache/bin/httpd -tSyntax OK[root@kevin01 ~]# /usr/local/apache/bin/httpd -k restart 5)另外要注意apache站点根目录下的权限,一定要修改为apache启动用户的权限[root@kevin01 ~]# ps -ef|grep apacheroot      3631     1  0 Oct14 ?        00:00:27 /usr/local/apache/bin/httpddaemon   13770  3631  0 18:13 ?        00:00:00 /usr/local/apache/bin/httpddaemon   13775  3631  0 18:13 ?        00:00:00 /usr/local/apache/bin/httpd [root@kevin01 ~]# chown -R daemon.daemon /data/www/public  ==================================================如果apache是http强转为https关系的route路由转发的配置,基本配置注意点如下: 1)配置httpd.conf主配置文件[root@kevin01 ~]# cat /usr/local/apache/conf/httpd.conf LoadModule ssl_module modules/mod_ssl.so                        #打开https访问的功能模块 LoadModule rewrite_module modules/mod_rewrite.so            #打开重写跳转功能模块 DocumentRoot "/data/www/public"<Directory "/data/www/public">Options FollowSymLinks MultiViews IncludesAllowOverride AllRequire all granted</Directory> DirectoryIndex index.html index.php 2)配置vhosts虚拟主机[root@kevin01 ~]# cat /usr/local/apache/conf/extra/kevin.conf<VirtualHost *:80>ServerName www.kevin.comDocumentRoot /data/www/publicDirectoryIndex index.php index.html ErrorLog "/var/log/httpd/www.kevin.com-error_log"CustomLog "/var/log/httpd/www.kevin.com-access_log" common </VirtualHost> [root@kevin01 ~]# cat /usr/local/apache/conf/extra/httpd-ssl.confListen 443SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4SSLHonorCipherOrder onSSLProtocol all -SSLv3SSLProxyProtocol all -SSLv3SSLPassPhraseDialog  builtinSSLSessionCache        "shmcb:/usr/local/apache/logs/ssl_scache(512000)"SSLSessionCacheTimeout  300 <VirtualHost *:443>DocumentRoot "/data/www/public"ServerName www.kevin.comDirectoryIndex index.php index.html SSLEngine onSSLCertificateFile "/usr/local/apache/conf/ssl/ssl.kevin.com.crt"SSLCertificateKeyFile "/usr/local/apache/conf/ssl/ssl.kevin.com.key"ErrorLog "logs/www.kevin.com-https-error_log"CustomLog "logs/www.kevin.com-https-access_log" combined</VirtualHost> [root@kevin01 ~]# ll /usr/local/apache/conf/ssl/total 8-rw-rw-r-- 1 root root 4085 Apr  8  2018 ssl.kevin.com.crt-rw-rw-r-- 1 root root 1706 Apr  8  2018 ssl.kevin.com.key 3)配置站点根目录/data/www/public路径下的.htaccess文件(包括http强转到https的配置)[root@kevin01 ~]# cat /data/www/public/.htaccess<IfModule mod_rewrite.c>Options +FollowSymlinks -MultiviewsRewriteEngine On RewriteCond %{SERVER_PORT} !^443$RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R] RewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]</IfModule> 4)重启apache服务[root@kevin01 ~]# /usr/local/apache/bin/httpd -tSyntax OK[root@kevin01 ~]# /usr/local/apache/bin/httpd -k restart 5)另外要注意apache站点根目录下的权限,一定要修改为apache启动用户的权限[root@kevin01 ~]# ps -ef|grep apacheroot      3631     1  0 Oct14 ?        00:00:27 /usr/local/apache/bin/httpddaemon   13770  3631  0 18:13 ?        00:00:00 /usr/local/apache/bin/httpddaemon   13775  3631  0 18:13 ?        00:00:00 /usr/local/apache/bin/httpd [root@kevin01 ~]# chown -R daemon.daemon /data/www/public

*************** 当你发现自己的才华撑不起野心时,就请安静下来学习吧!***************分类: Apache

4款免费的检测死链、坏链(broken links)的英文工具

http://youdaoyun.net/?p=299

4款免费的检测死链、坏链(broken links)的英文工具

作者 Blue姐 在SEO工具 标签 死链坏链SitelinerW3C Link CheckerDrlinkcheck

 牛逼的公众号:运营有道理 阅读数: 2,064

对于用户来说,访问到死链、打不开的链接,是非常不好的体验。对于SEO来说,网站死链太多,也是非常不友好的。谷歌建议站长能定期检测网站的死链。但如果依靠人肉去检测将是一件很麻烦的事情,而这个时代,海外免费的工具越来越少,多半是开始收费,因此今天我们推荐一些好用的且免费的工具来帮助你自动检测死链。

文章目录 [隐藏]

1、Siteliner.com

1)此工具能检测死链和网站复制内容,但禁止被搜索引擎索引的网站无法查询。(扫描国内网站还是比较慢的)

2)此工具界面非常简单,真正的傻瓜化操作,这也是我最有限推荐它的原因

2、Google Webmaster Tools (现在叫 Google Search Console)

这是谷歌官方的工具,只需嵌入一串代码或在根目录埋入一个文件,文章网站的验证(证明网站是你的),即可使用。

google Search Console可以通过分析爬虫抓取错误的链接,了解到哪些链接是死链坏链,非常简单。此工具非常强大,可以分析页面在谷歌的索引情况,了解用户搜索了相关关键词,是否在结果中点击了你的网站(所以网页标题和描述同样很重要,如果谷歌给了很多展示的机会,点击的人却很少,谷歌可能会降低网页在相关关键词排名的权重)


3、W3C Link Checker

W3C link checker 链接检查工具检查链接(很明显!),并根据检测到的信息提供建议。如果你的网站很复杂,页面很多,最好限制页面检测的深度(如下图的选择项,选择for diectories only),不然此工具会一直提示 检测中,检测中。

4、Drlinkcheck

drlinkcheck操作非常简单,网站上没有什么乱七八糟的内容。不但可以检测死链,还能检测链接。还区分内链和外链。

不过,缺点是,稍微一点慢。但还是可以容忍。

这4款免费的死链检测工具,你最钟爱哪一款呢? 实在不好取舍,就一起配合使用吧。就单一功能来看,其功能不逊色于 Moz、Semrush 等收费工具提供的功能。

看看其它文章:

为什么要使用html的meta标签

https://www.cnblogs.com/iamv/archive/2007/12/22/1010377.html

1、
meta标签是内嵌在你网页中的特殊html标签,包含着你有关于你网页的一些隐藏信息。Meat标签的作用是向搜索引擎解释你的网页是有关哪方面信息的。对于高级的搜索引擎来说,html 的meta 标签并不是什么新奇的东西。但是无论如何它是一个优秀网页不可缺少的。下面我们就它进行一些讲解吧。

2、
当你计划搜索引擎优化策略是meta标签是非常重要的。尽管如此,一般的加入meta 并不能帮助你在搜索引擎中获得更好的排名。有好几种meta标签,但重要的有以下几个:description标签, keywords标签, title标签(严格来说title不算是一个标签)。当你不时刷新标签时这几个标签显得特别的重要。如果你希望搜索引擎对你的网站进行索引时就会用到html标签的重定向(redirect)标签与robots标签.
注意:调查表只有20%的网页用到“关键字”与“描述”标签(即keyword, description)
下面是对于这两个标签的例子:
<html>
<head>
<title>标题内容</title>
<meta name=”description” content=”你的描述内容”>
<meta name=”keyword” content=”关键字1,关键字2,—“>
</head>
</html>多个关键字用逗号分开。

3、 title 标签

title 标签可能是你网页中最重要的标签,它是你网页中最先看到的部分。把它放在description 与 keyword前。在这个标签中最好是加上你网站的关键字,title标签在搜索引擎的搜索中占有非常重要的地位。最好是把它放在其他meta标签前,这更有利于你网站的排名。(注意:有些搜索引擎会按title标签的字母的优先权进行排名,尽量在你的title中使用开始的字母)title标签是人们在搜索引擎中第一个看到有关你网站的描述,所以尽量把它弄得简单、明了。让人一看就知道你的网站是关于什么的。

4、 Description标签

Description标签就在title后面,该标签可以是一小段(一个或者两个句子)。用于描述你网站。与title标签一样,这也是人们在搜索引擎列表中链接到你网站的点击。这些描述将鼓动人们去浏览你的网站而不是你竞争对手的。(描述不能太夸张。不然,当访问者到你网站发现内容根本不是你说的那个样子,那么他很快就会退出去。)很多搜索引擎允许描述的字数在150个左右,所以你要保证你的描述在150以下,否则搜索引擎会自动把多余的部分剪去从而造成你网站的描述的不完整。搜索引擎认为描述里的关键字远比网页中的内容要重要(好像现在这种情况不是那么明显了)。真如上所述,这里提供了非常重要的信息:确定你的描述能正确的反映你网站的主题,尽量在描述中加入你主要的关键字,越靠meta的关键字意义越大。这样会突显你的关键字。

现在大多的搜索引擎(google除外)都会支持descriptin标签。如果你不使用的话你将会失去排名靠前的可能。

5、keyword 标签

相比于description与title标签,keyword标签显得并不是那么重要了。有些搜索引擎把它完全地忽略,但是使用下正确的keyword标签对提高排名仍然有效。

除了搜索引擎外,一般情况下人们是看不到的。keyword标签是一个隐藏的标签,向搜索引擎提供了一组与你的页面有关的的关键字或关键短语列表。你可以用相应的工具找出一系列适用于你网站的关键字。(注意:关键字标签中只能包括与你本页内容相关的关键字列表。所有在这里的关键字必须与页面的内容相联系。)

提示:在你每一个页面中组织相关的关键字,每个页面必须专注于不同的产品或者内容。在标签中列满关键字对于提高你网站的排名并没有好处。多个关键字间用逗号用隔,逗号表示是逻辑“或”的意思。空格表示逻辑“与”。这是正式在keyword标签中描述关键字必须的。尽管如此,很多搜索引擎也会把关键字间以空格分开以达到能搜索出更相关的结果的目的。这样做的意义是,搜索引擎会把空格分开的关键字根据一定的方式自由组合。可以尝试用两种方法,看哪一种更加适合你。

关键字不宜以同一形式重复3-6次,一般这已经认为是最大的关键字重复数(好像现在又发生了变化)。所以,尽量避免把你的关键字一次又一次地不断重复。这对于每一个搜索引擎来说是SPAM(关键字垃圾),你会因此而受到惩罚。大多数的搜索引擎会允许你在keyword标签中使用最多1000个字符。通常,对每一个页面使用相关连的关键字会提高你网站的排名。一个很重要的因素是你关键字冗余度,如果你一个关键字是一个字符,而你的keyword标签中有100个字符,那么你关键字的冗余度就为1%。搜索引擎将会利用相关的算法对你的关键字冗余度进行统计你网页中的每一个重要的词或短语。去除多余的关键字有利于提高你网站的排名。

=================================

定义

向服务器和客户端传达关于文档的隐藏信息。

注释

META 元素还嵌入了某些搜索引擎用于索引和分类万维网上的文档时所用的文档信息。

此元素只能在 HEAD 元素内使用。

此元素在 Internet Explorer 3.0 的 及以上版本HTML 中可用,在 Internet Explorer 4.0 及以上版本的脚本中可用。

此元素不会显示。

此元素不需要关闭标签。

meta是用来在HTML文档中模拟HTTP协议的响应头报文。
meta 标签用于网页的<head>与</head>中,meta 标签的用处很多。
meta 的属性有两种:name和http-equiv。name属性主要用于描述网页,
对应于content(网页内容),以便于搜索引擎机器人查找、分类
(目前几乎所有的搜索引擎都使用网上机器人自动查找meta值来给网页分类)。
这其中最重要的是description(站点在搜索引擎上的描述)
和keywords(分类关键词),所以应该给每页加一个meta值。
比较常用的有以下几个name 属性

  1、<meta name=”Generator” contect=””>用以说明生成工具(如Microsoft FrontPage 4.0)等;

  2、<meta name=”KEYWords” contect=””>向搜索引擎说明你的网页的关键词;

  3、<meta name=”DEscription” contect=””>告诉搜索引擎你的站点的主要内容;

  4、<meta name=”Author” contect=”你的姓名”>告诉搜索引擎你的站点的制作的作者;

  5、<meta name=”Robots” contect= “all|none|index|noindex|follow|nofollow”>

  其中的属性说明如下:

  设定为all:文件将被检索,且页面上的链接可以被查询;

  设定为none:文件将不被检索,且页面上的链接不可以被查询;

  设定为index:文件将被检索;

  设定为follow:页面上的链接可以被查询;

  设定为noindex:文件将不被检索,但页面上的链接可以被查询;

  设定为nofollow:文件将不被检索,页面上的链接可以被查询。

  http-equiv属性

  1、<meta http-equiv=”Content-Type” contect=”text/html”;charset=gb_2312-80″>

和 <meta http-equiv=”Content-Language” contect=”zh-CN”>用以说明主页制作所使用的文字以及语言;

  又如英文是ISO-8859-1字符集,还有BIG5、utf-8、shift-Jis、Euc、Koi8-2等字符集;

  2、<meta http-equiv=”Refresh” contect=”n;url=http://yourlink”>定时让网页在指定的时间n内,跳转到页面http://yourlink

  3、<meta http-equiv=”Expires” contect=”Mon,12 May 2001 00:20:00 GMT”>可以用于设定网页的到期时间,一旦过期则必须到服务器上重新调用。需要注意的是必须使用GMT时间格式;

  4、<meta http-equiv=”Pragma” contect=”no-cache”>是用于设定禁止浏览器从本地机的缓存中调阅页面内容,设定后一旦离开网页就无法从Cache中再调出;

  5、<meta http-equiv=”set-cookie” contect=”Mon,12 May 2001 00:20:00 GMT”>cookie设定,如果网页过期,存盘的cookie将被删除。需要注意的也是必须使用GMT时间格式;

  6、<meta http-equiv=”Pics-label” contect=””>网页等级评定,在IE的internet选项中有一项内容设置,可以防止浏览一些受限制的网站,而网站的限制级别就是通过meta属性来设置的;

  7、<meta http-equiv=”windows-Target” contect=”_top”>强制页面在当前窗口中以独立页面显示,可以防止自己的网页被别人当作一个frame页调用;

  8、<meta http-equiv=”Page-Enter” contect=”revealTrans(duration=10,transtion= 50)”>和<meta http-equiv=”Page-Exit” contect=”revealTrans(duration=20,transtion=6)”>设定进入和离开页面时的特殊效果,这个功能即FrontPage中的“格式/网页过渡”,不过所加的页面不能够是一个frame页面。

湖南卫视拿到 37 亿广告费,都有哪些品牌在为它买单?

https://www.qdaily.com/articles/16861.html

晏文静2015 年 10 月 31 日57

已经公布的几个项目中,最厉害的还是《快乐大本营》。

10 月 29 日,湖南卫视在北京召开了 2016 年度的广告招商会,从广告主手中拿到了高达 37 亿元的支票。

单个节目签约额度最高的是湖南卫视的老牌节目《快乐大本营》。签约商是去年的合作伙伴 Vivo。虽然合作一年已是“老朋友”,但签约费用还是涨了一倍,从 3.5 亿元变成了 7 亿元。

招商会上最“土豪”的是化妆品牌韩束,花了 10 个亿独家冠名了“金鹰独播剧场”和《天天向上》。《天天向上》从 2008 年播出到现在已有 7 年,而 22 点档的“金鹰独播剧场”时间更长,从 2005 年《大长今》到现在已有 10 年,这两个都是湖南卫视最老牌的节目。另一家广告商——君乐宝,拿出了 3 个亿成为《金鹰独播剧场》和《钻石独播剧场》合作伙伴。

此外,湖南卫视的几个新节目也很受欢迎。蓝月亮以 4 亿签下了《旋风孝子》的独家冠名。湖南卫视一直对这个节目的期望很大。这是原版《爸爸去哪儿》、《我是歌手》的制作人金荣希转到中国发展后制作的第一档原创节目。

蒙牛在招商会上拿到了《全员加速中 》和《夏日甜心》,两档节目的独家冠名,一共花了 8 个亿。《全员加速中 》是湖南卫视开发来和《奔跑吧兄弟》抗衡的,有以 TFboys 为代表的一堆明星参加。《夏日甜心》是湖南卫视重拾的选秀节目,在第三季度周五晚间档播出,足以看出他们有多看重它。

OPPO 用 5 亿签下了《偶像来了 2》的独家冠名。去年 OPPO 签下《偶像来了》花了 4 亿,今年涨了一些。

分享至:

电影网站应该怎样优化

https://ask.seowhy.com/question/30704

那么现在我们浅谈电影站的SEO这条大家很想听的东西,相信大家也看了很多电影站的SEO方法,但是貌似都是一样,因为很多都是抄袭的或者就是伪原创了下在或者仅仅只是简单的综合讲述了做站的SEO方式而并没有去针对于电影站讲述,现在我在这里我针对于电影站为大家讲述下如何去对一个电影站进行SEO优化

  一、有颗时常分析他人站点的心

  因为不管做什么站我们的都要去分析别人的站点,然后从自己站点找原因,在这里有个提示:尽量去找那些在段时间内做的很好的(作弊不算,如果你想当当黑帽SEO我也不拦你的,嘿嘿)。现在的电影大站都是做了好几年都做起来的,并不是这样的站我们就不去分析,不去了解,我们也要去分析和了解,因为他们里面很多都是精华,我们如何去分析别人的站点,在这里我可以透露几点:1.关键字排行的关键字2.内页的布置3.资源(透露下,很多大站是由伦理做起来的,更多自己可以琢摩琢摩)。

  二、首内页标题的设置

  现在有很多大站,所以我们的首页很难优化在他们的前面,所以我们就要去做长尾,去钻钻大站的控制,大致他们的标题是怎么样的,那么我们如何做到不一样,而且我的不一样的设置的关键字也有指数,指数不高(能更好的排名),这些都是做内页,首页方面我们可以先放着不管,我们可以把内页做起来,然后我们首页自然也就能起来。

  三、原创性高

  当然现在做电影站的很多人都在问为什么我的网站没收录,对于这个问题,我想在这里说的是,并不是不收录你们的站点,而是你们的站点就是垃圾,你说谁喜欢要一个垃圾?所以原创性很总要,那么在原创性方面有多少方面呢?好比如:模板;首内页文字;影片标题;影片简介;等等一系列的东西,为什么电影站会出现这样一系列的问题,就是因为电影站是热门的行业,现在做一个电影站只需几分种,CMS满地是,好比如:马克斯CMS;飞飞CMS;光线CMS;苹果CMS;最新出来的有PIPICMS;易酷CMS;等等。资源站也很多,所以说在模板和内容方面都不是原创的,所以说做一个电影站,而且要做大也就是和大站竞争我们就得原创,因为这样你就能出类拔萃!

  四、外链的建设

  不管什么站点一个外链的建设是很总要的,因为一个外链能让百度更好的知道你网站,多个外链就证明你网站在百度面前展现的机会就更大,很多外链的话,那么你就是一个品牌了,好比电影站里的大哥大奇热网它可以说就是个品牌了,好吧啰嗦多了,那么我们如何建设外链,我建议的是:1.友链2.软文;为什么?因为友链是很好的一个外链,如果换到一个好的外链,也就是说是一个高质量的外链,具体相信大家也了解。为什么我在这里会说软文,因为一篇软文能带来众多网站的转载,也就是说一篇软文能带动多个外链,那么慢慢积累你的网站也就是一个品牌了,所以我们要写软文,不会的就可以去多换换友链,记住了必须是高质量的才好,前期我们可以随便点没事。本人网站支持一下!1

seo问题,网站没做301定向,不带三w的排名较好,我该放弃带三W那只吗?百度搜索联邦精密机械

https://zhidao.baidu.com/question/616273550723715692.html

2013-12-12个人认为选择带不带3w的其实没有多大区别,不管确定了哪个,以后就尽量针对一个做,将另一个301转向到确定的这一个追问

现在再做会不会降权啊

追答

不会

 本回答由提问者推荐 抢首赞    评论 分享举报qsh小学生
2013-12-12果断,毫不犹豫的做301转向。把不带3W做301转向到带3W的。追问

现在再做会不会降权啊

追答

不会被降权,301转向是被允许的。但千万不能做302转向。

抢首赞    评论 分享举报花悦雅
2013-12-12做seo要弄清专业的公司是采用 白帽还是黑帽来做,排名上去的正常要3个月或者半年,如果一周或者一个月这样承诺的要问清楚他们的调整方式,如果是黑帽被查到肯定是要降权的。 抢首赞    评论 分享举报

X
  本网站QQ群96686038 可以加QQ群一起交流经验或者加telegram群https://t.me/rgzn609 影视帝国 影视帝国 影视帝国影视帝国 影视帝国