【问题标题】:How to rewrite URL with `.htaccess`, which disallows direct links?如何用不允许直接链接的`.htaccess`重写URL?
【发布时间】:2017-09-05 00:16:46
【问题描述】:

我在htdocs 文件夹中创建了我的网站,其中包含一些文件,例如:.htaccessdetail.php ... 过去,我为我的网站使用了旧的 URL 结构:detail.php?id=12。然后,我使用了一个新的:product/12,通过使用这个简单的.htaccess

RewriteEngine On
RewriteRule "^product/([0-9]+)/?$" "/detail.php?$1"

现在,我不希望任何用户使用旧 URL 结构访问我的网站。如果你不介意,你能告诉我:如何用.htaccess重写URL,不允许直接链接?

在我的演讲中,disallows direct links 表示直接链接的404

【问题讨论】:

  • “禁止旧链接”是指让它们返回 404?
  • 我认为出于技术原因拒绝访问者的一部分(有时是重要的)从来都不是很聪明。您应该找到一种将这些页面重定向到新 url 的方法。 (制作一个product2页面,用于新的重写,并从旧产品页面重定向所有访问新url)
  • 我明白这一点。但是,301 重定向可能会更新搜索引擎的所有链接。使用 404 时,您会失去 SEO...

标签: php .htaccess mod-rewrite url-rewriting


【解决方案1】:

要禁止旧链接,您可以使用以下规则:

RewriteEngine on

RewriteCond %{THE_REQUEST} /product\.php\?id=.*$
RewriteRule ^ - [R=404,L]

这会将您的旧链接重定向到您网站的 404 错误页面。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-25
    • 1970-01-01
    • 2015-09-01
    • 1970-01-01
    • 2012-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多