2013-05-20 24 views
-2

我是php web開發中的新手,我試圖通過.htaccess文件隱藏.php擴展名從我的網站URL中,但它無法工作並顯示「服務器錯誤」如何從網頁中隱藏.php擴展

<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 
</IfModule> 

請幫我解決這個問題。

+0

的http://stackoverflow.com/questions/4026021/remove-php-extension-with-htaccess – Amir

+0

可能的複製除了這個被愚弄的人 - 一個簡單的谷歌搜索會回答這個。我發現令人震驚的是,人們認爲在這裏發佈問題比在Google中輸入通用搜索術語更容易。 http://tinyurl.com/lweo7ge - 前兩個搜索結果來自這個網站。 – Dutchie432

回答

0
RewriteEngine On 

    # Unless directory, remove trailing slash 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^([^/]+)/$ http://example.com/folder/$1 [R=301,L] 

    # Redirect external .php requests to extensionless url 
    RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/ 
    RewriteRule ^(.+)\.php$ http://example.com/folder/$1 [R=301,L] 

    # Resolve .php file for extensionless php urls 
    RewriteRule ^([^/.]+)$ $1.php [L] 
1

如果你做了基本的谷歌搜索,你會發現this link

RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [L, QSA] 
0
<IfModule mod_rewrite.c> 
    RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L] 
</IfModule> 
+0

這工作?在我看來,這將只是從輸入的相同url中重寫。我沒有看到任何PHP潛伏着。 – Dutchie432

+0

是的,它會的。 $ 1將照顧分機 – Sudz

+0

林不知道我明白。 '$ 1'表示URL中的任何內容。如果URL是'/ test' - 那麼'.php'會被附加到什麼位置?它不會只是從'/ test'重寫嗎?我不想成爲一個聰明的人 - 我只是非常喜歡簡單而且很好奇它是如何工作的。 – Dutchie432