.htaccess - 使用 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 文件中放置什么以及在何处使其工作(如果可能的话)
解决方案
考虑到您希望没有扩展文件的 URL 由 html 扩展文件提供服务,请您尝试以下操作。此外,由于您在 RewriteRule 之前没有提及任何特定条件,因此重定向错误即将到来,因为它会在缺少任何条件/检查存在的情况下继续重定向(直到超过其最大重定向限制)。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.*)$ /$1.html [NC,L]
推荐阅读
- apache-camel - 如何使用来自 Topic ActiveMQ Artemis 的消息
- go - Golang 代码中的未知错误:第二遍中的插入排序?
- c++ - C++:为什么函数对象基类、适配器和绑定器被弃用(C++11)和移除(C++17)?
- c - MISRAC:2012:规则 4.1 八进制和十六进制转义序列应终止
- java - 会话 ID 为空。调用 quit() 后使用 WebDriver?
- css - 如何使用 bootstrap 3.3.7 在顶部导航栏中创建下拉菜单?
- c++ - “链接 CXX 可执行世界服务器”失败
- r - 如何使用插入符号比较不同的模型,调整不同的参数?
- git - 尝试从 git 调用 mergetool 时出错
- r - 如何检测语料库中的语法元素