想要将html页面重定向为另一页面的子页面

时间:2020-08-02 23:11:04

标签: html .htaccess

就像在wordpress中一样,您可以将页面制作为其他页面的子页面,如何在.htaccess的帮助下使用HTML文件来完成此工作? 我的网站上有这样的HTML页面

abc.com/1.html和abc.com/2.html

我要删除.html扩展名

abc.com/1和abc.com/2

我希望abc.com/2重定向到

abc.com/1/2请记住,此URL中的1不是文件夹。这两个URL abc.com/1和abc.com/2都在同一文件夹中。

我该怎么做。

2 个答案:

答案 0 :(得分:0)

要屏蔽文件扩展名,请首先在您的VirtualHost配置文件或MultiViews中启用.htaccess

Options +MultiViews

然后,您可以仅提供不带.html扩展名的超链接。 HTTP服务器将通过添加扩展本身来搜索文件。但是您也可以在.htaccess中添加重写规则:

RewriteCond %{THE_REQUEST} /([^.]+)\.html
RewriteRule ^ /%1 [R=301]

在这里,您得到%{THE_REQUEST}并解析它以重写URL,而文件名末尾没有.html

要将1/2/重定向到2/

RewriteRule ^1/2/(.*)$ 2/$1

请注意,在第二条规则中,您不使用[R]标志,因为您不想在浏览器中更改URL。

在使用重写规则之前,请确保启用RewriteEngine

RewriteEngine On

有关URL重写的更多信息:https://httpd.apache.org/docs/2.4/rewrite/intro.html

答案 1 :(得分:0)

为了更好地使用正则表达式,请使用比mod_alias更强大的mod_rewrite。

打开mod_rewrite

RewriteEngine On
RewriteBase /

RewriteRule ^answer-now(/.*|)$ http://www.abc..net/2/? [L,NC,R=301]