2

我正在重建网站的链接结构。

对于某些部分,该站点现在使用实际的 php 脚本进行响应,例如:

DOMAIN/about-us.php

我必须像这样重新映射那些 URL(这只是一个例子):

DOMAIN/about-us.php --> DOMAIN/uk/about-us

由于这些页面已经编入索引,我想使用 301 重定向到新资源。

我使用了这些规则:

RewriteRule ^/about-us.php$ /uk/company/about-us   [R=301,L]
RewriteRule ^/uk/company/about-us$ about-us.php   [L]

但这遇到了无限循环。

我尝试了不同的解决方案,但没有成功(我也尝试了这个:如何停止 .htaccess 循环- 建议的第二种方法)。在我的环境中唯一有效的是重命名 about-us.php 并更新规则。但由于我们有很多脚本重命名所有这些并不是最佳选择。

4

1 回答 1

2

试试这个:

Options +FollowSymLinks -MultiViews

RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(.*)\.php [NC]
RewriteRule ^ /%1 [R=301,QSA,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f
RewriteRule /?([^/]+)/?$ $1.php [L]

仅适用于根文件夹上的 php。

于 2013-09-03T11:34:13.533 回答