朋友您好我有搜索批次但找不到解决我重写网址问题的解决方案。
我的网站有a.html和b.html页面,希望他们有这样的链接 mywebsite.com/a/而不是mywebsite.com/a.html
和 mywebsite.com/a/b/而不是mywebsite.com/b.html
这两个页面都存在于根目录中。那么如何在htaccess文件中使用apache重写规则。
答案 0 :(得分:0)
试试这个:
RewriteEngine on
RewriteCond %{THE_REQUEST} \s/+([^\/]+)?(?:index)?(a)\.html[\s?/] [NC]
RewriteRule ^a\.html$ /%1%2 [R=302,L,NE]
RewriteRule ^a/$ /a.html [L]
RewriteCond %{THE_REQUEST} \s/+([^\/]+)?(?:index)?(b)\.html[\s?/] [NC]
RewriteRule ^b\.html$ /a/%1%2/ [R=302,L,NE]
RewriteRule ^a/b/$ /b.html [L]
RewriteCond %{REQUEST_URI} ^/(b)\/?$
RewriteRule ^ /a/%1/ [R=302,L,NE]
RewriteCond %{REQUEST_URI} ^(/a/b)$
RewriteRule ^ %1/ [R=302,L,NE]
因此,上面的代码将与/a.html , /a or /a/
匹配,然后在外部将其更改为/a/
,并在内部将其重定向到/a.html
。
同样匹配/b.html ,/b or /b/
,然后在外部将其更改为/a/b/
,并在内部将其重定向到/b.html
。
注意:清除浏览器缓存并对其进行测试,如果是,请将302
更改为301
以获得永久重定向。