假设我有一个名为example.com的网站,它有以下页面:
example.com
example.com/foo
example.com/bar
现在我想创建一个澳大利亚版本的网站。大多数页面的内容在两个站点上是相同的,但URL结构将是:
example.com/au
example.com/au/foo
example.com/au/bar
所有请求都已经通过index.php通过我的。htaccess文件中的以下内容路由:
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而言,我希望它以相同的方式处理两个页面。
决定要显示哪些内容的逻辑将在稍后发生,这超出了这个问题的范围。
一个小小的调整
我假设foo
和bar
都不是实际的目录。
-
RewriteCond %{REQUEST_FILENAME} !-f
检查请求不是一个存在的文件 -
RewriteCond %{REQUEST_FILENAME} !-d
检查请求不是一个现有的目录
example.com/foo
和example.com/au/foo
都满足这些条件,因此将遵循规则。让我们做一个小调整,这样index.php
不会被路径碎片污染:
RewriteRule ^ index.php [L,DPI]
有了这个,你应该设置好了。:)