如何编辑.htaccess文件

时间:2017-08-07 04:13:28

标签: php .htaccess

现在我有htaccess文件

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresDefault "access plus 2 days"

</IfModule>

我想添加一些代码

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

我可以把这段代码放在哪里 内部或外部。请建议/指导我正确的解决方案。

3 个答案:

答案 0 :(得分:0)

这是你应该做的

<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteCond %{HTTP_HOST} !^www.example.com$ [NC]
 RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
</ifModule>

请参阅here以获取参考资料

您也可以查看this了解.htaccess

的详细信息

答案 1 :(得分:0)

mod_expires下打开一个新的IfModule。您可以参考here

<IfModule mod_expires.c>
// your code
</IfModule>

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.example.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
</IfModule>

或者只是

<IfModule mod_expires.c>
 // your code
</IfModule>

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

答案 2 :(得分:0)

IfModule检查给定模块是否已安装且处于活动状态。在您的示例文件中,它检查是否存在mod_expires.c模块。如果是,请执行标记内的内容。

Apache重写由mod_rewrite.c apache模块处理。所以你应该这样做:

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresDefault "access plus 2 days"
</IfModule>

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.example.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
</IfModule>

您可以完全删除标签。如果没有标签而您没有安装mod_rewrite,则apache会出错。如果所需的apache模块不存在,IfModule会优雅地忽略标记内的行。