2017-08-10 55 views
0

上顯示標記我正在構建個人網站,並且我希望我的url鏈接看起來像domainname.com/example而不是domainname.com/example.html.htaccess文件不覆蓋html,而是在第

我正在使用fastcomet進行我的虛擬主機服務。在我的public_html文件夾下,我有一個.htaccess文件。這是我的.htaccess文件的代碼。

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

我的.htaccess文件和我所有的HTML,CSS,JS文件正在家/用戶名/的public_html /我已經移除了所有的HTML文件的HTML擴展。我應用了這些更改後,我試圖讓http://domainname.com/example,我看到的HTML標記,而不是呈現的HTML如:

<!doctype html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<all my code .... /> 
</html> 

上我應該做的事情有什麼建議?我將.htaccess文件放在錯誤的目錄中?我也嘗試過使用和不使用.htaccess文件上的Ifmodule標籤。

謝謝!

+0

「我已經從我所有的html文件中刪除了.html擴展名」 - 爲了澄清,您已經從HTML文件本身中刪除了文件擴展名?或者只是從指向該文件的URL(這是你應該做的)? – MrWhite

回答

0

是的,的確,您應該保留文件擴展名.html,以便您可以正確處理文件並使.htaccess按預期工作。看來在此期間,您確實已將該票張貼到我們的技術支持團隊。儘管您的請求存在輕微的誤解,但我們團隊的一名高級成員已成功排除了Nginx服務處理HTML和HTM文件的問題,現在他們直接通過Apache訪問您的域名。因此,現在所有的url鏈接看起來都像domainname.com/example,而不是domainname.com/example.html。如果您有任何進一步的要求,請不要猶豫與我們聯繫!

0

我已經移除了所有HTML文件

的HTML擴展,這就是爲什麼你看到的頁面代碼。

重命名的文件備份,並使用以下重寫規則:

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)\.html$ /$1 [L,R=301] 
</IfModule> 
0

FastComet隊在這裏!我們的部分共享主機環境正在使用NginX作爲Apache Web服務的反向代理。這意味着靜態內容(如HTML文件)由NginX直接處理,而不是由Apache處理。這就是爲什麼您應用於您網站的.htaccess文件的任何規則都沒有做出任何實際的更改。對HTML文件的請求將由NginX直接處理,並且不會傳遞給Apache,因此.htaccess規則將被忽略。

有一個簡單的方法來解決這個問題。我們可以排除處理您的域或甚至整個託管帳戶的HTML和HTM文件。這樣,這些請求將由Apache Web服務器處理,而不是NginX。在這種情況下,您應用的.htaccess規則將被系統考慮在內,並且它們將毫無問題地工作。爲此,只需向我們的技術支持團隊提交一張票,我們將很樂意提供協助。

+0

謝謝。因此,在票證中,我只是表明我想排除我的域上的文件的html處理,然後我的.htaccess文件將工作。你知道我是否需要將文件的文件擴展名保存爲.html嗎? –