当前位置: 首页 > 面试题库 >

将非索引页面请求重定向到具有.htaccess的哈希链接

左丘嘉言
2023-03-14
问题内容

我的正则表达式 较弱 ,仅当请求是从外部链接传入时,我才需要将任何 FileName.htmFileName.html
页面请求重定向到 ./#FileName 。这些文件都将驻留在根目录中。

这是我到目前为止所拥有的。它给我错误:(

RewriteCond %{REQUEST_FILENAME} !index.html$|!index.htm$ [NC]
RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !example\.com [NC]  
RewriteRule ^([a-zA-Z0-9\-_]+)\.html$ /#$1 [NE, R]

第一行 确保仅索引文件不被重定向。 如果请求来自未知引荐来源 则第二行 不重定向。 第三行将 我的域排除在重定向规则之外。
第四行将其 重定向到哈希链接。

这似乎不起作用。
如果有更有效的方式来编写此代码,请多谢。谢谢!


问题答案:

尝试以下规则:

RewriteCond $1 !=index [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?example\.com/ [NC]
RewriteRule ^([a-zA-Z0-9\-_]+)\.html?$ /#$1 [NE,R]


 类似资料:
  • 我有这个在我的. htaccess文件: 但是每当我访问根目录上的文件时,就像它将重定向到。 我如何纠正它,以便它将正确地重定向到?

  • 如果我实现一个哈希表,我理解插入是在恒定的时间内完成的。我也明白,如果没有碰撞,我可以在不变的时间内找到物品。然而,如果我插入一个项目,并在任意索引中使用链表链接它,它最终在位置2,但它在列表下链接了3个链接,这是O(n)时间,进行搜索吗?

  • 问题内容: 我正在写一个简单的基于PHP的MVC-ish框架。我希望该框架能够安装在任何目录中。 我的PHP脚本抓取了请求uri并将其分为多个部分。它使段1成为控制器,而段2成为动作。当我这样做时,一切都很好 它将转到特定的模块控制器和方法。现在,我有一个默认控制器,即home控制器,它位于文件夹home中。 ,它将显示403禁止,因为此文件夹确实存在,相反,它也应该返回如果我将框架安装在其他文件

  • 我们的整个网站将通过https提供服务。我在每条路线上都有“https”。但是,如果他们试图通过http将其重定向到https,我该如何将其重定向到https?

  • 问题内容: 重新设计网站后,我需要重定向几个页面。一切都在同一个域中,只有几件事已被重组和/或重命名。它们的形式为: /contact.php 就是现在: /contact-us.php 使用.htaccess文件,我添加了这一行,这是我最推荐的行: 这通常很好-它可以完成工作-问题是,它还可以重定向: /team1/contact.php /non-existant-folder/contact

  • 问题内容: 您如何链接(与),以便浏览器转到目标页面上与顶部相对的某些子标题? 问题答案: 如果有标签或任何带有(例如>)的标签,则只需将其附加到URL。否则,您将无法任意链接到页面的某些部分。 这是一个完整的示例: 在同一页面上链接内容的示例: