我已經爲我的網絡服務器刪除了.php文件擴展名。我只是想讓它看起來更漂亮。這很好。.htaccess刪除擴展名,但允許404(如果不存在)
我有以下網頁: sitename.com/portfolio sitename.com/portfolio/resume/file.html
的htaccess具有完美的規則,以便當他們參觀的第二個鏈接它只是將其轉化爲投資組合.php?resume & file = $ 1。這很棒。
好吧,繼承人的問題。由於我刪除了附加信息,因此如果用戶使用traing slash將域名設置爲sitename.com/ portfolio/,則它們將獲得內部服務器錯誤。同樣,如果他們只輸入sitename.com/portfolio/r,他們也會因爲它不存在而出現錯誤。我知道解決這個問題的一個辦法是在每個頁面的htacess中添加一個選項,但這似乎是一個糟糕的做法。
反正我在這裏使用當前htacess文件:
Options +FollowSymlinks
RewriteEngine On
RewriteBase/
RewriteRule ^portfolio/resumes/([^/]+).html$ /portfolio.php?resume&file=$1 [L,QSA]
RewriteRule ^portfolio/resumes$ /portfolio.php?resumes [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ /$1.php [L]
ErrorDocument 404 /404.php
如果我訪問,這並不頁面上的網站存在類似sitename.com/1或sitename.com/1.php然後我得到我的404頁面,但如果1.php DID存在,那麼我會看到它,如果它確實存在,我鍵入sitename.com/1/或sitename.com/1/somethingelse然後而不是404(我期望)然後它給我一個內部服務器錯誤。有沒有辦法解決?我的語法錯誤?由於
非常感謝! :) – Kaboom