我需要一些帮助来弄清楚为什么我的代码不再有效。
原帖: 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.html
至domain.com/music-classes-in-dallas-tx.html
有谁知道为什么这可能会停止工作?我可以改变什么才能让它再次发挥作用?
答案 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