301重定向后避免无限循环

时间:2015-05-19 14:55:50

标签: apache .htaccess mod-rewrite redirect

我只是使用重写从.htaccess文件中的所有网站页面末尾删除文件扩展名.php:

RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $1.php

重写效果很好,但现在当我为任何页面创建重定向时,比如说contact.php现在重定向到/ contact,它会创建一个无限循环。我知道这可能是一个非常简单的修复方法,但我根本不知道该语言来编写脚本。对我需要做的任何帮助都可以修改我现有的脚本,以避免无限循环!

...虽然有类似的帖子,但我找不到任何符合我情况的帖子,因为我对技术语言不够熟悉,对我来说很难辨别哪些变量可以/应该改变....

1 个答案:

答案 0 :(得分:1)

尝试:

RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [L]