2017-09-25 77 views
1

我在我的网站上有以下URL,在进行一些网站测试时无意中得到了索引。我正在尝试将网址重定向到我网站上的正确网页。无论出于何种原因,我无法让重定向实际按预期工作。正则表达式不适用于RedirectMatch

这里是收录在我的网站

domain.com/wa/-county/communityname

的URL有时社区实际上是一个城市,需要重定向。该URL实际上应被重定向到:

domain.com/wa/cityname

对于那些情况下,社区实际上是一个城市。

现在这里是我相信我的作品抛出扳手的部分。

/-county/需要明确地匹配该文本。我有在网站上的一些网址实例,其中结构为:

domain.com/wa/king-county/selah

的网址是动态生成。该网站的Itemid是导致在此情况下会生成县名king的原因。编入索引的网址只是索引而没有URL的县名部分。

这是我到目前为止尝试过的正则表达式和redirectmatch。

RedirectMatch 301 (\/-county\/)(.+$) /wa/$2 

现在我明白了这一点的方法是

(.*$) = $2 

任何人都可以阐明这个问题对我来说任何额外的光?

这里是到Regex101 Test

+0

试试这个.. https://regex101.com/r/PPaMNr/3'(\/[^ \ /] *? - 县\ /)(。+ $)'你正确的'$ 2'是比赛中的第二组是'(。+ $)'。第一组$ 1是通过'(\/[^ \ /] *? - county \ /)匹配的所有内容' – kaza

+0

@bulbus我试图实现您在regex101上发布的代码。 RedirectMatch从不捕获url和重定向。正则表达式本身看起来不错。 –

+0

明白了!你需要捕获更多的团体,看看我的其他评论。 – kaza

回答

2

一个链接,您可以使用此规则为你的第一个规则站点根目录的.htaccess:

RedirectMatch 301 ^/([\w-]+)/-county/(.+)$ /$1/$2 

确保测试这些修改时清除浏览器缓存。

+0

我在RewriteEngine On后立即添加了这一行,它什么都没做。测试3个独立的浏览器。 –

+1

他想确保把http:// example.com/wa/king-county/selah'转向'http:// example.com/wa/selah' – kaza

+0

他想要确保'http:// example.com/wa/king-castle-county/selah'转向'http:// example.com/wa/selah',所以我想。 – kaza

相关问题