重写URL而不影响服务器请求方法

时间:2013-10-27 21:26:16

标签: php apache .htaccess

这是我的问题:
我想从我的网址中删除“.php”扩展名。

我找到了这段代码:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /

RewriteRule ^forums/ - [L,NC]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [L]

......哪个有效,但我有问题。

我真的不知道为什么,但是这段代码以某种方式改变了服务器请求方法 POST到GET。因此,如果我在.htaccess文件中使用此代码,则无法再使用POST方法。

那么..有没有其他方法可以隐藏“.php”扩展名?

无论如何,谢谢你:))

1 个答案:

答案 0 :(得分:2)

它以这种方式工作,因为您[R]将所有以.php结尾的请求编辑到没有.php的新URL。你正在做重定向。您无法重定向POST请求。如果您不想在最后使用.php,请不要链接到这些网址。使您的表单操作直接提交到非.php URL。