首页 > 解决方案 > 使用 htaccess 重定向会导致重定向过多

问题描述

我正在开发的网站正在使用一些 cms。我需要为此添加一个静态网站。当我将 mypage.html 放在主目录中并转到www.website.com/mypage.html时,它可以工作。我希望该页面可以在没有“.html”结尾的情况下访问。我尝试编辑 htaccess 文件,但总是以重定向过多的错误告终。

我输入的是各种组合,例如

Redirect 301 http://website.com/mypage http://website.com/mypage.html

我正在使用的 htaccess 文件如下所示:

:Location /*.php
Use php54
:Location

RewriteEngine On



DirectoryIndex index_prod.php
Options -Indexes

RewriteRule ^.*\.(css|png|swf|js|gif|jpeg|jpg|flv|pdf|doc)$ - [L]
RewriteRule ^net2ftp - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

#RewriteRule ^/?$ plug.html [L]

#RewriteCond %{REQUEST_URI} !=/
RewriteRule ^/?.* index_prod.php


我正在寻找提示或被明确告知在 htaccess 文件中放置什么以及在何处使其工作(如果可能的话)

标签: .htaccessmod-rewritefrontend

解决方案


考虑到您希望没有扩展文件的 URL 由 html 扩展文件提供服务,请您尝试以下操作。此外,由于您在 RewriteRule 之前没有提及任何特定条件,因此重定向错误即将到来,因为它会在缺少任何条件/检查存在的情况下继续重定向(直到超过其最大重定向限制)。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.*)$ /$1.html [NC,L]

推荐阅读