我想在我的web服務器上實現一些非常簡單的事情。我希望以.php結尾的網址以/例如www.example.net/something.php結尾爲www.example.net/something或www.example.net/folder/subfolder/something.php爲www。 example.net/folder/subfolder/something。此外,我不介意我是否有www.example.net/folder/something.php?something=whatever/。我只關心刪除網址中的最後一個.php文件。我在其他許多人中使用過這些代碼。從url結尾刪除.php文件擴展名。
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule .*[^/]$ $0/ [L,R=301]
RewriteRule (.*)/$ $1.php [L]
但是,這隻適用於我的一些網頁。例如,它不起作用在我的www.example.com/folder/contactus.php頁面上。相反,我得到我的404頁面。但它完美的工作在www.example/folder/faq.php上。 此外,我做了一些file_get_contents()php請求在我的代碼的各個部分。有沒有什麼辦法來定製這些規則,以便內部請求(我的php函數)不受影響。基本上我只想讓瀏覽器在沒有.php結尾的情況下顯示url,而不會影響我在.php文件中保存的其他php函數。爲了進一步澄清我的意圖:我使用字符串處理函數從php文件中提取基於我設置的變量的特定行文本。但隨着當前重寫規則PHP文件不能我目前使用一個共享的godaddy的主機帳戶Linux服務器被發現,因爲擴展已經被從文件名中去除(即時猜測。
$file_contents = file_get_contents($filename);
。
它仍然表現怪異。首先,內部的PHP腳本和函數調用保持不變。太棒了。然而,它仍然這樣做 'http://www.sitename.net/folder/something.php到http:// www.sitename.net/folder/something.php' 和在同一目錄中的其他文件 'http://www.sitename.net/folder/something.php到http:// www.sitename.net /文件夾/東西/' 奇怪的是,其中一個頁面沒有這個'http://www.sitename。 net/var/chroot/home/content/37/9179448/html/control/something'這會導致我的404頁面。你上面的確切代碼是我使用的原因。 – jmreader 2012-07-28 05:25:45