【问题标题】:Redirect From Pretty URL to .html URL从漂亮的 URL 重定向到 .html URL
【发布时间】:2021-03-22 21:10:10
【问题描述】:

我最近从使用 Wordpress 切换到仅使用静态 html 的网站。当我重新制作每一页时(总共只有 6 页),我保留了相同的 URL 名称。

例如:https://reactiongaming.us/alteriwnet/ 现在是 https://reactiongaming.us/alteriwnet.html

我的问题是旧链接和 Google 搜索结果包含导致 404 错误的反应游戏.us/alteriwnet/ 版本。我已经为“漂亮的 URL”尝试了各种 .htaccess 方法,但没有一个有效。通常,这些问题是关于如何从 .html URL 重定向到漂亮的 URL,但我正试图做相反的事情。

我总共只需要将 6 个 URL 从 reactgaming.us/example/ 重定向到 reactgaming.us/example.html。有没有 .htaccess 或其他方法来实现这一点?

我试过了:

RewriteCond %{THE_REQUEST} \.html [NC]
    RewriteRule ^(.*)\.html$ /$1 [R=302,L]

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME}\.html -f
    RewriteRule ^(.*)$ $1.html [L]
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]+)$ $1.html [NC,L]

【问题讨论】:

  • 一个非常简单的方法是为每个页面创建 1 个文件夹,并重命名此文件夹中的每个(唯一和单个)页面 index.htm 或您网站使用的索引页面的任何默认名称。
  • “我尝试了各种 .htaccess 方法” - 请阅读How to Ask。你应该向我们展示你尝试了什么。
  • 在最简单的形式中,RewriteRule (.*)/$ $1.html [R=301] 应该可以解决问题。如果您有实际的文件夹需要免除此限制,则可以将具有通常!-d 条件的 RewriteCond 放在其前面。如果需要,.* 模式可以更具体。

标签: html .htaccess url redirect


【解决方案1】:

您可以使用Redirect 指令将旧网址重定向到新网址格式

Redirect 301 /alteriwnet/ /alteriwnet.html

这会将/alteriwnet 301 重定向到/alteriwnet.html

要仅使用一个内嵌代码重定向多个 URL,您可以使用 RedirectMatch,它使用基于正则表达式的模式

RedirectMatch 301 ^/(alteriwnet|path2|path3)/?$ /$1.html

参考资料:

【讨论】:

  • 这看起来很简单。如何在 .htaccess 中实现这一点?只需简单地将您的代码复制进去?
  • @BobSmith 是的。您可以在 htaccess 中使用它。
  • 我将您的第一个示例添加到我的 .htaccess 中,但它不起作用。有什么想法吗?
  • @BobSmith 您在 htaccess 中是否有任何其他指令可能与此冲突?如果您有一个 RewriteRule 来处理 non-existant 文件,Redirect 指令将不起作用,因为 RewriteRule 指令优先于 Redirect
  • 只有你的一行。 "重定向 301 /alteriwnet /alteriwnet.html"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-19
相关资源
最近更新 更多