2013-09-22 68 views
0

我遇到了一个问题,Google网站管理员工具正在报告来自ask.com的大量404链接到我的网站。htacces - 需要修复来自其他网站的破碎链接到我的

我试图让ask.com修复他们的一面,但当然他们不是,所以现在我坚持超过11k的我的网站的不良链接,我怀疑是现在影响我的等级。

反正我有一个可能的方式来301他们,但不知道如何做到这一点与.htaccess

这里是错误的链接指向我的网站

http://www.freescrabbledictionary.com/sentence-examples/fere-film/feverous/about.php 

应该

http://www.freescrabbledictionary.com/sentence-examples/fere-film/feverous/ 

除了about.php有结局的其他变化还有,基本上,我需要能够移除结局。

问题是/sentence-examples/之后的URL可以更改。一开始总是:

http://www.freescrabbledictionary.com/sentence-examples/ 

所以基本上:

http://www.freescrabbledictionary.com/sentence-examples/<-keep but can change->/<-keep but can change->/<-remove this-> 
+0

你必须指定你的'<-remove this->'更严格。它应该是什么形式的文件名点结束?如果是这样,如果你的一个''--keep但是可以改变 - >'也会匹配那个模式呢? (或者他们保证总是以斜线结尾?)当然:到目前为止您尝试过什么? – CBroe

+0

是的,它确实感谢清除那个 –

回答

1

.htaccess应放置在文件夹上sentence-examples前:

RewriteEngine on 

# Redirect /sentence-examples/anything/anything/remove to /sentence-examples/anything/anything/ 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(sentence-examples/[^/]+/[^/]+)/.* [NC] 
RewriteRule^/%1/? [R=302,PT,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/(.*)$ /sentence-examples/examplesentence.php?havethis=$1&word=$2 [L] 

更改302301一旦你确认它按预期工作。

如果您安装了CMS,则可能需要使用不同的规则才能与其配合使用而不会发生冲突。

请记住,如果您以前尝试使用301又名永久性重定向,则建议您使用其他浏览器来测试此规则以避免缓存。

+0

试过你的例子,但似乎没有发生。我不需要使用RediectMatch? –

+0

没有CMS和是的我有更多的方式在我的htaccess文件 –

+0

退房http://www.freescrabbledictionary.com/htaccess.txt我把它作为一个文本文件供你看 –

0

这可能是快速和肮脏的,但我做了一个简单的测试在本地主机上,并here只是为了确保它的工作原理。

RewriteEngine On 
RewriteRule ^sentence-examples/(.*)/(.*)/(.*)\.php http://www.freescrabbledictionary.com/sentence-examples/$1/$2/ [R=301,L] 

你可以看到,我添加通配符组(。*)的重写规则,这样我们就可以拿起URL,我们需要在适当的重定向帮助的元素,即$ 1和$ 2。你也可以使用第三个(3美元)来获得哪些目的地很多针对你的搜索引擎优化需求。

注:以上规则假定该重定向的URL将始终从.PHP目标,并确保你可以不管第三URL后段无坚不摧重定向这个

更换重写规则
RewriteRule ^sentence-examples/(.*)/(.*)/(.*)$ http://www.freescrabbledictionary.com/sentence-examples/$1/$2/ [R=301,L] 
+0

我试了两个例子,似乎没有发生。我也在htaccess.madewithlove.be上测试了这一点,并且输出正确。请记住,这些链接是从其他网站传到我的。这会实际上重定向用户,当他们到达这样的链接? –

+0

无论用户从哪里发送,RewriteRule都会将用户重定向到指定的目标。我已经建立了一个小环境来解决@Prix和我自己提供的规则似乎无法在您的服务器上工作的原因[link](http://lab.briankinyua.com/SO/sentence-examples/fere-film /feverous/about.php)。我认为这可能是因为你在sentence-examples文件夹下有另一个htaccess文件,到目前为止情况并非如此。 –

+0

@CesarBielich是否可以提供服务器访问和错误日​​志的副本?我认为这可以帮助更多了解请求期间发生的事情。 –

相关问题