什么是我的.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>
,达到自动重定向在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]
我使用了上面链接的工具。它表示gzip未启用 –
已更新的答案,并建议尝试使用mod_deflate来解决gzip部分,并解决有关规范主机名的查询问题。 – Owen
我会尝试一下!非常感谢您的耐心等待! –
为什么不使用像这里的文件:
GitHub - Apache Server Configs
这的.htaccess已经为压缩等配置
我认为你将能够在文件中添加所需的所有内容,例如,您可以添加Flash Player的文件类型。
谢谢!我要看看它。 –
'我期待发生的事情,没有发生'那到底是什么呢? –
你好@PanamaJack,我试图从我的页面中删除扩展名(.html)。我收集了一些关于.htaccess文件的信息,并试图写我自己的,但我的网页上仍然有扩展名。另外,当我检查Google速度测试时,它说我的网站不会压缩图像和文件。我也想用.htaccess制作。 –
通过从您的页面中删除扩展名解释您的意思。你是否期望从你的代码中移除html扩展?或者你想使用漂亮的URL?请更好地解释以及您希望在地址栏中看到的内容。 –