我在 HTACCESS 文件中有这段代码,它工作正常,因为它删除了 .php 文件扩展名。它还允许加载没有扩展名的页面。
# For security reasons, Option followsymlinks cannot be overridden.
#Options +FollowSymLinks -MultiViews
Options +SymLinksIfOwnerMatch -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
## hide .php extension
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]
## To internally redirect /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [L]
它工作正常。问题是当我使用这段代码时
<form action="test.php" method="post" id="myform" name="myform">
<input type="text" name="username">
<input type="submit" value="login">
</form>
在测试.phpecho $_REQUEST['username'];
为空/空。
我尝试从表单操作中删除 .php 然后它起作用了。但是我无法从网站中使用的所有文件中删除 .php 。
对于重复标记:我读过这个post但我的问题不同。对于我来说,表单提交但不携带任何值。
在下面插入这条规则RewriteBase
避免重定向 POST 请求的行:
RewriteCond %{REQUEST_METHOD} POST
RewriteRule ^ - [L]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)