301 RedirectMatch - 问题

时间:2015-05-31 21:30:15

标签: .htaccess redirect

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

原始问题:

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]

虽然上面修复了网址的所有问题,但我注意到我的普通网址存在问题。例如,domain.com/careers-jobs-music-degree.html正在变成domain.com/careers-jobs-in-music-degree.html - 'in'被添加到其他没有'的网址中URL中的“music-classes”。有什么方法可以阻止这种情况吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以通过这种方式尝试规则,因此不应影响真正的网址。

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]