Apache 避免301重定向后的无限循环

Apache 避免301重定向后的无限循环,apache,.htaccess,mod-rewrite,redirect,Apache,.htaccess,Mod Rewrite,Redirect,我刚刚使用重写从我的.htaccess文件中的所有网站页面末尾删除了文件扩展名.php: 重新编写引擎打开 重写cond%{REQUEST_FILENAME}-D 重写cond%{REQUEST_FILENAME}\.php-f 重写规则^(.*)$$1.php 重写非常有效,但是现在当我为任何页面创建重定向时,比如说contact.php重定向到/contact,它会创建一个无限循环。我知道这可能是一个非常简单的修复方法,但我对语言的了解还不足以编写脚本。如果您能帮助我修改现有脚本以避免无限循

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

重新编写引擎打开
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}\.php-f
重写规则^(.*)$$1.php

重写非常有效,但是现在当我为任何页面创建重定向时,比如说contact.php重定向到/contact,它会创建一个无限循环。我知道这可能是一个非常简单的修复方法,但我对语言的了解还不足以编写脚本。如果您能帮助我修改现有脚本以避免无限循环,我将不胜感激

…在这方面也有类似的帖子,但我找不到任何与我的情况完全匹配的帖子,因为我对技术语言不够熟悉,所以我很难辨别哪些变量可以/应该更改….

试试:

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]

是的,使用
%{THE_REQUEST}
是使此重定向正常工作的正确方法+1Beautiful!起初我认为它不起作用,因为我还试图为页面创建重定向,但这段代码也负责为我设置重定向!谢谢!!!!:)