更改的 .htaccess 现在不能 POST 回来?

Changed .htaccess now can't POST back?

是的,我更改了 .htaccess 以删除 url 中的文件扩展名。现在我注意到我无法 post 支持任何类似表格或类似的东西?

这是我的 .htaccess 文件:

RewriteEngine On

# Unless directory, remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/$ http://%{HTTP_HOST}/Main/ [R=301,L]

# Redirect external .php requests to extensionless url
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ http://%{HTTP_HOST}/Main/ [R=301,L]

# Resolve .php file for extensionless php urls
RewriteRule ^([^/.]+)$ .php [L]

我在我的表单中使用 $_SERVER["PHP_SELF"],我认为可能需要更改以反映 .htaccess?我真的很茫然。

是的。这是你的 .htaccess 文件问题。

如果您从文件中删除 .php 扩展名,您的表单操作属性需要反映此更改。

您可以通过简单地将 $_SERVER['PHP_SELF'] 变量传递给 trim() 函数来做到这一点,如下所示:

<form action="<?php echo trim($_SERVER['PHP_SELF'], '.php') ?>" method="POST">
    <input name="example" type="text" />
    <input type="submit" value="Submit">
</form>

现在您的表单应该可以正确提交了。