【问题标题】:301 RedirectMatch - Issue301 重定向匹配 - 问题
【发布时间】:2015-05-31 21:30:14
【问题描述】:

我在这里发布了一个问题,我得到了答案,但现在我发现代码存在问题。

原问题:

301 RedirectMatch - Many URLs

RewriteRule ^([^-]+)-([^-]+)-(?!in)([^/]+)-([^-]{2})\.html$ /$1-$2-in-$3-$4.html [R=301,L]
RewriteRule ^([^-]+)-([^-]+)-(?!in)([^/]+)\.html$ /$1-$2-in-$3.html [R=301,L]

虽然上述解决了 URL 的所有问题,但我注意到我的正常 URL 存在问题。例如,domain.com/careers-jobs-music-degree.html 正在变成 domain.com/careers-jobs-in-music-degree.html - 'in' 被添加到其他没有 ' URL 中的音乐类。有什么办法可以预防吗?

谢谢!

【问题讨论】:

  • 普通网址是真实网址还是假网址?
  • 那些是真实的和到位的。

标签: .htaccess redirect


【解决方案1】:

您可以通过这种方式尝试这些规则,以免影响真实的 URL。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^-]+)-([^-]+)-(?!in)([^/]+)-([^-]{2})\.html$ /$1-$2-in-$3-$4.html [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^-]+)-([^-]+)-(?!in)([^/]+)\.html$ /$1-$2-in-$3.html [R=301,L]

【讨论】:

  • 嗯,除了正常的 URL,一切正常,例如:domain.com/the-best-music-schools.html
  • 另外,如果有一个包含多词城市的 URL 可以这样更改:music-classes-sandiego-ca.html 到 music-classes-in-san-diego-ca .html...所以它添加了 -in- 并将sandiego 拆分为san-diego。
  • 重定向到的网址是真的还是假的?还要回答您的第二条评论,不,没有办法,因为 Apache 不认为 SanDiego 应该在其中有一个空间?这只是另一个词。
  • 如果 URL 中有 -in-,则这些特定页面(如 domain.com/the-best-music-schools.html)不存在。希望能回答问题
  • 这有可能吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-25
  • 2014-10-17
  • 1970-01-01
  • 2010-11-07
  • 1970-01-01
  • 2023-03-25
  • 2014-03-10
相关资源
最近更新 更多