.htaccess重写,试图删除所有文件上的.html文件扩展名EXCEPT索引文件

时间:2014-02-05 19:38:01

标签: php html apache .htaccess mod-rewrite

我正在尝试对所有文件进行“简单”重写,这样您就不必在网址末尾找到.html的链接。我有一个几乎完全有效的代码,除了它重写所有文件,然后搞砸了我的index.html文件,这是一个很大的问题。这是我正在使用的代码:

Options FollowSymLinks
DirectorySlash Off
RewriteBase /
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ $1.html

我想我只需要一个让它忽略index.html的代码,所以我尝试了这个,这给了我索引页面上的错误403和每个其他页面上的错误500:

RewriteRule ^index.html$ $0 [L]

但我想最后,我不完全确定我在做什么,我不知道在哪里放置代码行,我不知道它是否完全正确。

我尝试过的ORIGINAL代码就是这样,但是每个页面都给出了403错误:

Options FollowSymLinks
RewriteBase /
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ $1.html

我做错了什么?

1 个答案:

答案 0 :(得分:0)

试试这段代码:

Options FollowSymLinks
RewriteEngine On

RewriteCond %{DOCUMENT_ROOT}/$1.html -f [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}.html -f [OR]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^((?!index).+?)/?$ $1.html [L,NC]