htaccess的错误

时间:2015-11-18 16:23:36

标签: html apache .htaccess url

今天我尝试首次编写.htaccess文件,以便从url栏中删除.html扩展名以及其他一些我想做的事情。由于我对这一切都不熟悉,所以我在编写之前阅读了几篇文章。

我最终得到了以下代码。我还从所有链接中删除了.html。问题是,访问我的域时,我收到以下错误。

//The resource you are looking for has been removed, 
//had its name changed, or is temporarily unavailable.

我的代码是否正确?

更新.htaccess

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

//Remove .html UNTIL NOW THIS IS THE ONLY PART 
//OF THE CODE THAT ACTUALLY WORKS.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.html [NC,L]

//Caching schema
<FilesMatch "\.(jpg|png)$">
Header set Cache-Control "private, max-age=160704000"
</FilesMatch>

//Prevent viewing of .htaccess file
<Files .htaccess>
order allow,deny
deny from all
</Files>

单独的.htaccess

//Prevent directory listings
Options All -Indexes

主要错误 如果我点击链接:

<a href="index">Home</a>

然后我得到同样的错误。

提前谢谢大家。

2 个答案:

答案 0 :(得分:0)

这在Apache中是原生的,不使用mod_rewrite选项使用MultiViews

Documentation州:

  

MultiViews的效果如下:如果服务器收到/ some / dir / foo的请求,如果/ some / dir启用了MultiViews,并且/ some / dir / foo不存在,那么服务器会读取目录查找名为foo。*的文件,并有效地伪造一个命名所有这些文件的类型映射,为它们分配相同的媒体类型和内容编码,如果客户端通过名称请求其中一个文件。然后,它会根据客户的要求选择最佳匹配。

答案 1 :(得分:-1)

我终于设法解决了部分问题。对于初学者,我将服务器从Windows更改为linux。

然后删除html扩展名我在.htaccess中使用了这段代码(其他代码没有运行,给我一个错误信息)

//Remove .html
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([^\.]+)$ $1.html [NC,L]

我还从所有链接中删除了任何.html实例。 现在它就像一个魅力。