Htaccess用于将目录重定向到具有相同名称的文件

时间:2017-06-20 21:07:20

标签: .htaccess redirect mod-rewrite directory


在快速查找如何管理具有多种语言支持的网站后,我发现 site.com/language/page / 最新的网址布局。 (因为我没有 site.language 的资金)

我使用htaccess将基站重定向到site.com到site.com/language/ 使用:RedirectMatch ^/$ /language/其中'语言'是language.html

但是因为我有一个名为/ language /的目录,所以给定语言中的所有其他页面都可以放在其中,该站点只显示为目录的索引。

如果我希望主索引页面在网址中显示为site.com/language/,我该如何实现这种布局?

当前的htaccess工作正常,直到我添加目录:

## Rewrite Defaults
RewriteEngine On

## Remove file extension + force trailing slash
RewriteCond %{REQUEST_URI} (.*)/$
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule (.*)/$ $1.html [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule .* %{REQUEST_FILENAME}/ [R=301,L]

## Redirect to /en-gb
RedirectMatch ^/$ /en-gb/

根文件夹看起来像:

/language
  stuff.html
  morestuff.html
language.html
...

我非常感谢帮助,因为这是目前的噩梦。当我尝试使用类似问题的答案编译htaccess时,每个人都只有我想要实现的部分内容,因此我每次修改都会打破布局......

是否可以更改后端文件名并仅使用htaccess进行前端URL重写来完成此布局,因为url bar是唯一重要的事情?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您应该可以通过删除以下行解决此问题:

RewriteCond %{REQUEST_FILENAME} !-d

如果有效,请告诉我。