2013-10-27 54 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網址。

相關問題