Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess REDIRECT_循环阻止PHP_SELF正确执行函数_.htaccess_Redirect - Fatal编程技术网

.htaccess REDIRECT_循环阻止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

下面的重定向将阻止带有php_self的表单在同一页面上正确运行函数。 由于某种原因,我在删除该服务器上的尾随斜杠时遇到问题,因此我选择了这条路线。我觉得很有趣!页面将刷新,但不运行任何代码。更改页面以防止重定向将返回工作状态。有什么想法吗

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中调用的函数。看起来它脱离了包含路径。