微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用.htaccess将重定向子目录合并到根目录并同时删除HTML扩展名?

如何解决如何使用.htaccess将重定向子目录合并到根目录并同时删除HTML扩展名?

我尝试将Redirect子目录合并到根目录,并使用.htaccess删除.html

但是我的活动有问题

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# RedirectMatch 301 ^/path/$ http://testdomain.com/
# RedirectMatch permanent ^/path/$ http://testdomain.com/
# RedirectMatch 301 ^/path/.*$ http://testdomain.com/
# RewriteRule ^path/(.*)$ /$1 [R=301,NC,L]

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

</IfModule>

链接的扩展名中删除.html并获取结果没有任何问题

但是我无法在根目录中获得子目录链接,因此每次尝试从前4行清除# 但我没有得到结果

我喜欢这样做

http://testdomain.com/path/hello.html
to
http://testdomain.com/hello

现在有了这段代码,我可以删除HTML扩展名,并且链接状态就像

http://testdomain.com/path/hello.html
TO
http://testdomain.com/path/hello

现在我需要清除链接中的“路径”文件

同时,我收到错误404 Not Found,请指导我。

解决方法

您可以使用以下规则替换您的规则:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/path/$1.html -f
RewriteRule ^(.+?)/?$ path/$1.html [L]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。