假设我有一个名为example.com的网站,其网页如下:
example.com
example.com/foo
example.com/bar
现在我想创建一个澳大利亚版本的网站。大多数页面的内容在两个站点上都是相同的,但URL结构将是:
example.com/au
example.com/au/foo
example.com/au/bar
所有请求都已通过我的.htaccess文件中的以下路由通过index.php进行路由:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^ index.php [L]
我如何改变这一点,以便example.com/foo
和example.com/au/foo
都通过index.php路由。就index.php而言,我希望它以同样的方式对待这两个页面。
确定要显示哪些内容的逻辑将在稍后发生,并且超出了此问题的范围。
答案 0 :(得分:1)
一个小小的调整
我假设foo
和bar
都不是实际目录。
RewriteCond %{REQUEST_FILENAME} !-f
检查请求是否为现有文件RewriteCond %{REQUEST_FILENAME} !-d
检查请求是否不是现有目录 example.com/foo
和example.com/au/foo
都符合这些条件,因此会遵循该规则。让我们做一个小调整,以便index.php
不受路径碎片的污染:
RewriteRule ^ index.php [L,DPI]
有了这个,你应该被设定。 :)