我有这个代码在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>
On test.php echo $_REQUEST['username'];
为空/null.
我试图从表单操作中删除。php,然后它工作了。但是我不能从网站中删除。php文件。
对于重复标记:我读了这篇文章,但我的问题是不同的。对于我,表单提交但不携带值。
将此规则插入RewriteBase
行下面以避免重定向POST请求:
RewriteCond %{REQUEST_METHOD} POST
RewriteRule ^ - [L]