如何进行多次重定向

时间:2012-10-12 03:32:02

标签: .htaccess redirect hyperlink

目前我正在更新我的网站,我想更改指向example.com/test.phpexample.com/test等非扩展链接的所有链接。这个解决方案我发现我输入了.htaccess文件:

RewriteCond %{THE_REQUEST} ^GET\ /(([^/?]*/)*[^/?]+)\.php

RewriteRule ^.+\.php$ /%1 [L,R=301]

但与此同时,我需要对位于我的网站下层的链接进行重定向,例如example.com/level/test2.phpexample.com/test2.php。 我应该在.htaccess中写什么来将我的文件从较低级别重定向到更高级别并同时删除.php扩展名?

1 个答案:

答案 0 :(得分:0)

你需要将你的分组和反向引用分开,而不是整个事物:

RewriteCond %{THE_REQUEST} ^GET\ /([^/?]*/)*([^/?]+)\.php
RewriteRule ^.+\.php$ /%2 [L,R=301]

基本上,/(([^/?]*/)*[^/?]+)\.php更改为([^/?]*/)*([^/?]+),然后%1更改为规则目标中的%2