2013-10-27 26 views
0

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

我发现这个代码:在不影响服务器请求方法的情况下重写url

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”扩展名?

谢谢反正:)

+0

'[R]'旗会为你做到这一点。你可以做的是(1)在你工作时不要重定向到一个'%{REQUEST_METHOD} POST',(2)将你所有的表单动作属性改为所需的URL,以便拥有很好的POST。重写是完全正确的,但还应该解决链接问题,其中包括表单操作。 – Wrikken

+0

我真的不知道该怎么做:( –

+0

等等,什么,你不知道如何改变你HTML中的表单动作属性?真的吗?你正在使用某个框架阻碍你的行为吗? – Wrikken

回答

2

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

相关问题