2012-09-20 181 views
1

我有一个问题让旧的WordPress网站页面重定向到新的基本PHP网站页面。.htaccess 301将页面重定向到一个PHP页面没有扩展

举例:没有扩展名的老WordPress的页面是http://example.com/levelone/leveltwo/pagename

新页面在http://example.com/directory/pagename.php

这里有几件事情我已经试过:

redirect 301 /levelone/leveltwo/pagename http://example.com/directory/pagename.php 

这根本不

工作,然后我试图重定向的目录,然后再到页面,就像这样:

RedirectMatch 301 ^/levelone/leveltwo/ http://example.com/directory/ 
redirect 301 /pagename http://example.com/pagename.php 

这几乎工作,但给了我正确的URL,但没有PHP扩展。

我不能只重定向一个旧的目录到一个新的,因为实际上有很多。这个例子只是一个例子。麻烦似乎是从非扩展页面到扩展名为.php的页面。

这里是我想另一件事:

RedirectMatch 301 ^/levelone/leveltwo/(.*)$ /directory/$1.php 
redirect 301 /pagename http://example.com/pagename.php 

这给了我http://example.com/directory/pagename/.php

解决:我得到了它与以下工作:

Redirect 301 /levelone/leveltwo/pagename/ http://example.com/directory/pagename.php 

的问题似乎是与旧的网页名称后丢失的斜杠。

+1

你可以发表你的解决方案作为一个答案,然后接受你自己的答案。这将标志着问题解决。 – TRiG

回答

0

尝试:

RedirectMatch 301 ^/levelone/leveltwo/(.*)$ /directory/$1.php 

什么是可能发生的事情是mod_alias中和mod_rewrite的是不是打漂亮对方。它们都在URI文件映射管道中,因此当进行处理时,URI(尽管最终会发生重定向响应)将继续得到处理,那么当发生重定向时,URI已被mod_rewrite 。

你应该坚持使用mod_rewrite,以便你可以防止任何wordpress规则做它的事情。添加这些规则上述您有任何WordPress的规则在htaccess文件:

RewriteEngine On 
RewriteRule ^/?levelone/leveltwo/(.*)$ /directory/$1.php [L,R=301] 
+0

这让我更接近,但也许我仍然在做错事。我编辑上面的变化,但没有雪茄呢。 – user1687345

+0

@ user1687345哦,你知道可能发生了什么......让我在我的编辑 –

+0

解释我会试试看。而且......只是为了澄清,该网站曾经是WordPress,但现在只是一个基本的PHP网站,根本没有WordPress。发生了什么是在谷歌的旧网址是死404,所以我需要他们重定向到新的PHP页面。 – user1687345

相关问题