首页 > 解决方案 > Mod rewrite 将每个子目录重定向到同一个文件

问题描述

我有一个带有products.html文件的网站。现在,在这个文件中,我将有一些 Javascript 代码检查 url 以显示正确的产品/类别。这是网址的一些示例:

example.com/products
example.com/products/
example.com/products/shoes
example.com/products/shoes/
example.com/products/shoes/adidas
example.com/products/shoes/adidas/
example.com/products/shoes/adidas/adidas-predator-20.3
example.com/products/shoes/adidas/adidas-predator-20.3/

所以基本上,我希望每次有人访问上述任何一个 url 时,我都想获取文件products.html,剩下的我会用 JS 来管理。

我也希望能够在我的本地机器上测试它。在这种情况下,我的 URL 将是:

localhost/websites/myWebsite/products
localhost/websites/myWebsite/products/
localhost/websites/myWebsite/products/shoes
localhost/websites/myWebsite/products/shoes/
localhost/websites/myWebsite/products/shoes/adidas
localhost/websites/myWebsite/products/shoes/adidas/
localhost/websites/myWebsite/products/shoes/adidas/adidas-predator-20.3
localhost/websites/myWebsite/products/shoes/adidas/adidas-predator-20.3/

所以我认为我们需要两个 htaccess 文件,对吧?

标签: apache.htaccessmod-rewriteurl-rewriting

解决方案


您可以使用同样适用于 localhost 和生产主机的单一规则:

RewriteEngine On

RewriteRule (?:^|/)products(?:/|$) products.html [L,NC]

推荐阅读