什么是我的.htaccess文件丢失或错误?

问题描述:

我对.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?请更好地解释以及您希望在地址栏中看到的内容。 –

,达到自动重定向在Apache中,你可以考虑使用MultiViews,这是很容易实现和向后兼容。例如,在你的.htaccess文件中这一行:

Options +MultiViews 

现在,您可以从这些URL访问同一个文件:

/def/search.html 
/def/search 

之后,它是不断变化的HTML文件,所以他们的事情链接到没有文件后缀的URL。这是一项重要的任务(但有一些工具可能有所帮助)。

至于gzip尝试,*上的其他人似乎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

我会尝试一下!非常感谢您的耐心等待! –

为什么不使用像这里的文件:

GitHub - Apache Server Configs

这的.htaccess已经为压缩等配置

我认为你将能够在文件中添加所需的所有内容,例如,您可以添加Flash Player的文件类型。

+0

谢谢!我要看看它。 –