通过htaccess添加文件扩展名
问题描述:
是否可以向不包含文件扩展名的url添加.html。因此,例如通过htaccess添加文件扩展名
mydomain.com/somepage 将直接向 mydomain.com/somepage.html
我用下面却得到一个内部服务器错误尝试。
RewriteEngine On
RewriteBase/
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ $1.html [NC,L]
感谢
答
RewriteEngine On
RewriteBase/
# add .html file extension
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.+)$ $1.html [L]
如果与扩展名为.html这样的文件确实存在,它只会重写(安全改写 - 将解决你的问题“达成内部重定向的最大数量”)。换句话说:如果被请求并且/about.html
存在,那么它将被重写。另一方面,如果请求/yeahbaby
,但没有/yeahbaby.html
文件存在,则不会发生任何事情(404处理程序应该启动..或任何其他可能存在的规则)。
日志说...? – 2012-04-02 08:58:48
[Mon Apr 02 10:16:52 2012] [error] [client 127.0.0.1] mod_rewrite:达到的最大内部重定向数目。假设配置错误。如果需要,使用'RewriteOptions MaxRedirects'来增加限制。 – Ben 2012-04-02 09:17:46
FURL正在网站上运行,所以不知道这是否会导致差异?我已经确认这是在任何FURL代码 – Ben 2012-04-02 09:18:49