.htaccess REDIRECT_循环阻止PHP_SELF正确执行函数
下面的重定向将阻止带有php_self的表单在同一页面上正确运行函数。 由于某种原因,我在删除该服务器上的尾随斜杠时遇到问题,因此我选择了这条路线。我觉得很有趣!页面将刷新,但不运行任何代码。更改页面以防止重定向将返回工作状态。有什么想法吗.htaccess REDIRECT_循环阻止PHP_SELF正确执行函数,.htaccess,redirect,.htaccess,Redirect,下面的重定向将阻止带有php_self的表单在同一页面上正确运行函数。 由于某种原因,我在删除该服务器上的尾随斜杠时遇到问题,因此我选择了这条路线。我觉得很有趣!页面将刷新,但不运行任何代码。更改页面以防止重定向将返回工作状态。有什么想法吗 Options +FollowSymLinks RewriteEngine On RewriteBase / DirectorySlash Off RewriteRule ^bio$ /bio/index.php [L,E=LOOP:1] Rewri
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
DirectorySlash Off
RewriteRule ^bio$ /bio/index.php [L,E=LOOP:1]
RewriteCond %{ENV:REDIRECT_LOOP} !1
RewriteRule ^bio/$ /bio [R=301,L]
RewriteCond %{ENV:REDIRECT_LOOP} !1
RewriteRule ^bio/index.php$ /bio [R=301,L]
RewriteCond %{THE_REQUEST} ^GET\ (.*)\.php\ HTTP
RewriteRule (.*)\.php$ $1 [R=301]
RewriteRule (.*)/index$ $1/ [R=301]
# remove slash if not directory
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /$
RewriteRule (.*)/ $1 [R=301]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) $1\.php [L]
如果不想将
/
放在目录末尾,则需要将目录斜杠
关闭:
DirectorySlash off
DirectoryIndex index.php
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteRule ^ - [L]
RewriteCond %{THE_REQUEST} ^GET\ (.*)\.php\ HTTP
RewriteRule ^(.+?)\.php$ /$1 [L,R=301]
RewriteRule ^(.+?)/index$ /$1 [L,R=301]
# remove trailing slash
RewriteCond %{THE_REQUEST} \s(.+?)/+[?\s]
RewriteRule ^(.+?)/$ /$1 [R=302,L]
# route to bio/index.php if request is /bio
RewriteRule ^bio$ bio/index.php [L,NC]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) $1\.php [L]
/bio
是目录吗?是的。如前所述,我无法删除尾随斜杠,所以我选择了这条路线,因为我已经正确地测试过了。再次感谢您的帮助。只需浏览一下网页,您就会发现第一条规则的含义,即RewriteCond%{REQUEST\u METHOD}POST
条件忽略了POST
请求的所有规则。您有其他.htaccess或代码异常运行。我有其他.htaccess指令,但没有任何干扰。当我添加RewriteCond%{REQUEST_METHOD}POST时,它会导致500个错误——这就是为什么页面是空白的。您以前告诉过我的anywhere这个500个错误吗?如果你没有提供足够的信息,你希望如何得到帮助。检查您的Apache error.log以了解出现500的原因。我得到了“PHP致命错误:调用未定义的方法”,这是在/bio/index.PHP中调用的函数。看起来它脱离了包含路径。