2016-08-02 34 views
0

我對.htaccess文件一無所知,所以我想問你們一些幫助。我將列出我正在嘗試使用代碼執行的操作,但這不起作用。什麼是我的.htaccess文件丟失或錯誤?

  • 從我的網址中刪除.html和.php(我的意思是得到一個乾淨的鏈接);
  • 壓縮文件,如圖像和.js/.css(谷歌speedtest說,它沒有發生);
  • 使網站有和沒有www(標準將沒有www);

就是這樣。預先感謝您的幫助!

<ifModule mod_gzip.c> 
mod_gzip_on Yes 
mod_gzip_dechunk Yes 
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$ 
mod_gzip_item_include handler ^cgi-script$ 
mod_gzip_item_include mime ^text/.* 
mod_gzip_item_include mime ^application/x-javascript.* 
mod_gzip_item_exclude mime ^image/.* 
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* 
</ifModule> 
<FilesMatch "(\. (engine|inc|info|install|module|profile|po|sh|.*sql|theme|tpl(\.php)? |xtmpl)|code-style\.pl|Entries.*|Repository|Root|Tag|Template)$"> 
Order allow,deny 
</FilesMatch> 
Options -Indexes 
RewriteEngine on 
RewriteRule ^/abc/(.*)$ /new/$1 [R=301,L] 
RewriteEngine on 
RewriteRule ^/def/(.*)\.html$ /new2/$1.html [R=301,L] 
RewriteEngine on 
RewriteRule ^/ghi/(.*)\.(html|htm)$ /new3/$1.$2 [R=301,L] 
RewriteEngine on 
RewriteRule ^/jkl/(.*)$ http://www.mywebsite.com/$1 [R=301,L] 
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.html -f 
RewriteRule ^(.*)$ $1.html 
<IfModule mod_expires.c> 
ExpiresActive On 
ExpiresByType image/jpg "access 1 month" 
ExpiresByType image/jpeg "access 1 month" 
ExpiresByType image/gif "access 1 month" 
ExpiresByType image/png "access 1 month" 
ExpiresByType text/css "access 1 month" 
ExpiresByType text/html "access 1 month" 
ExpiresByType application/pdf "access 1 month" 
ExpiresByType text/x-javascript "access 1 month" 
ExpiresByType application/x-shockwave-flash "access 1 month" 
ExpiresByType image/x-icon "access 1 month" 
ExpiresDefault "access 1 month" 
</IfModule> 
+0

'我期待發生的事情,沒有發生'那到底是什麼呢? –

+0

你好@PanamaJack,我試圖從我的頁面中刪除擴展名(.html)。我收集了一些關於.htaccess文件的信息,並試圖寫我自己的,但我的網頁上仍然有擴展名。另外,當我檢查Google速度測試時,它說我的網站不會壓縮圖像和文件。我也想用.htaccess製作。 –

+0

通過從您的頁面中刪除擴展名解釋您的意思。你是否期望從你的代碼中移除html擴展?或者你想使用漂亮的URL?請更好地解釋以及您希望在地址欄中看到的內容。 –

回答

1

,達到自動重定向在Apache中,你可以考慮使用MultiViews,這是很容易實現和向後兼容。例如,在你的.htaccess文件中這一行:

Options +MultiViews 

現在,您可以從這些URL訪問同一個文件:

/def/search.html 
/def/search 

之後,它是不斷變化的HTML文件,所以他們的事情鏈接到沒有文件後綴的URL。這是一項重要的任務(但有一些工具可能有所幫助)。

至於gzip嘗試,StackOverflow上的其他人似乎recommend mod_deflate優先於mod_gzip,因爲它更容易配置。請參閱this page以獲取有關使用mod_deflate(僅在mod_gzip指令下方)的說明。

最後,您可以使用mod_rewrite重定向到沒有www前綴的規範URL。舉例www.example.com:

RewriteCond %{HTTP_HOST} ^www\.example\.com [NC] 
RewriteRule ^/(.*)  http://example.com/$1 [L,R=301] 
+0

我使用了上面鏈接的工具。它表示gzip未啓用 –

+1

已更新的答案,並建議嘗試使用mod_deflate來解決gzip部分,並解決有關規範主機名的查詢問題。 – Owen

+0

我會嘗試一下!非常感謝您的耐心等待! –

1

爲什麼不使用像這裏的文件:

GitHub - Apache Server Configs

這的.htaccess已經爲壓縮等配置

我認爲你將能夠在文件中添加所需的所有內容,例如,您可以添加Flash Player的文件類型。

+0

謝謝!我要看看它。 –

相關問題