2016-07-26 106 views
1

我最近添加這些行到我的.htaccess文件在服務器上破後:網站修改.htaccess文件

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 

什麼,我試圖做的是消除在文件名後需要.PHP。這工作很好,但其他的東西被打破了。

該網站的URL是http://subdomain.something.domain/eCom/,我有一個index.php文件,它在上面的鏈接被使用時自動加載。但在編輯.htaccess文件後,上面的鏈接返回一個404錯誤。如果我使用http://subdomain.something.domain/eCom/indexhttp://subdomain.something.domain/eCom/index.php,頁面仍可以正常打開。我不知道發生了什麼事。無論如何,這可以解決?

注:我不明白上面關於所有RewriteEngine的東西的代碼。我剛從一個網站複製,希望能夠快速修復。任何有關它的附加信息都會受到歡迎,如果這是破壞我的代碼。

回答

2

RewriteCond %{REQUEST_FILENAME} !-d加上您的第一個RewriteCond以避免匹配目錄。

+0

請您解釋一下這些行的意思嗎?我訪問信息的網站甚至沒有解釋這些行。 –

+2

'RewriteCond%{REQUEST_FILENAME}!-f'表示如果文件存在,則不要重寫。這將防止'test.jpg'等文件試圖重寫(因爲'test.jpg'存在於你的服務器上)。 'RewriteCond%{REQUEST_FILENAME}!-d'說「如果這個目錄存在,不要重寫它」。 – FrankerZ