重定向301代码停止工作

时间:2015-05-06 03:45:06

标签: html .htaccess mod-rewrite redirect

我需要一些帮助来弄清楚为什么我的代码不再有效。

原帖: How to redirect multiple similar URLs with one query?

请查看原始问题。

似乎代码已停止为我工作。这很好,很长一段时间,现在它导致错误。我有这段代码:

RedirectMatch 301 ^/([^-]+)-([^-]+)-([^-]{2})\.html$ /$1-in-$2-$3.html
RedirectMatch 301 ^/([^-]+)-([^-]+)-([^-]+)-([^-]{2})\.html$ /$1-$2-in-$3-$4.html

网址切换我喜欢:

domain.com/music-classes-dallas-tx.htmldomain.com/music-classes-in-dallas-tx.html

有谁知道为什么这可能会停止工作?我可以改变什么才能让它再次发挥作用?

1 个答案:

答案 0 :(得分:0)

更新:由于文件名不一致,此方法不正确。请参阅下面的评论。

使用mod_rewrite,您可以在.htaccess文件中使用以下内容:

RewriteEngine on

# Condition: First, check that `-in-` is not contained in the request URI
RewriteCond %{REQUEST_URI} !-in- [NC]

# Rule: If it isn't, redirect the old page to the new one
RewriteRule ^([a-z-]+)-([a-z]+)-([a-z]{2})\.html$ /$1-in-$2-$3.html [NC,L,R=301]

如果您还想确保重定向的文件确实存在,您可以在上面指定的条件下添加:

RewriteCond %{REQUEST_FILENAME} -f