就像在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都在同一文件夹中。
我该怎么做。
答案 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。
RewriteEngine On
RewriteBase /
RewriteRule ^answer-now(/.*|)$ http://www.abc..net/2/? [L,NC,R=301]