2013-10-17 88 views
1

通過一些修改可以隱藏網頁文件擴展名爲http://www.abc.com/asd/zxc/而不是zxc.php,但我想要做的是從網址中完全刪除文件名,例如http://www.abc.com/asd/它不會「不管用戶在哪裏訪問網站,但url應始終保持靜態。使用.htaccess從網址中完全刪除文件名

是否可以這樣做.htaccess

我已經嘗試過這一點,但沒有奏效:

RewriteOptions inherit 
RewriteEngine On # enables url rewriting 

RewriteCond %{REQUEST_FILENAME} !-d # if requested uri is not directory (!-d) 
RewriteCond %{REQUEST_FILENAME}\.php -f # and if there is a file named URI+'.php' (-f) 
RewriteRule ^(.*)$ $1.php # then if there is any thing in uri then rewrite it as uri+'.php' 
+0

我更新了我的答案,現在我已經測試過它來檢查它的工作原理。 – Cyclonecode

回答

1

我不知道,但是,這不是你想查詢的問題,使所提供的URL片段不是目錄不是一個文件,如果是這種情況,追加.php的片段?

像這樣的東西可能會奏效:

RewriteEngine On     # enable mod_rewrite 
RewriteBase/      # set the 'base' for the rewrite 
            # you might need to modify this one. 

RewriteCond %{REQUEST_FILENAME} !-f # not a file 
RewriteCond %{REQUEST_FILENAME} !-d # not a directory 
RewriteRule ^(.*)$ /$1\.php [L]  # append '.php' to the path 
            # 

如果你有以下目錄結構,當然還有.htaccess文件中的結構的根:

/code/test.php 
/index.php 

您應該能夠使用以下網址訪問test.phpindex.php文件:

http://example.com/code/test/

http://example.com/index/

example.com需求是變化的有效域名或IP地址。

+0

這將返回「內部服務器錯誤」,我的網址如「http://192.168.2.254/showcalendar/index.php」和頁面如「http://192.168.2.254/showcalendar/SubRouter.php」是可能的所有的時間保持URL像「http://192.168.2.254/showcalendar/」? – Sheshman

+0

您是否測試過上述更新後的代碼,我在我的服務器上試過了,它工作正常。你有'mod_rewrite'啓用?試着像'RewriteBase/testfolder'一樣設置'RewriteBase'到你的目錄。你把'.htaccess'文件放在正確的文件夾中嗎? – Cyclonecode

+0

感謝您的回答奇怪的是它在我的電腦的Apache服務器上工作,但是當我嘗試在我的Qnap NAS上返回500內部服務器錯誤。我想我必須查看Qnap論壇。再次感謝。 – Sheshman