Apache .htaccess mod_重写国家代码前缀
假设我有一个名为example.com的网站,它有以下页面:Apache .htaccess mod_重写国家代码前缀,apache,.htaccess,mod-rewrite,internationalization,Apache,.htaccess,Mod Rewrite,Internationalization,假设我有一个名为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} !
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而言,我希望它以相同的方式处理这两个页面
确定要显示哪些内容的逻辑将在稍后发生,并且超出了此问题的范围。一个小调整 我假设
foo
和bar
都不是实际的目录
检查请求是否不是现有文件RewriteCond%{REQUEST\u FILENAME}-f
检查请求是否不是现有目录RewriteCond%{REQUEST\u FILENAME}-d
example.com/foo
和example.com/au/foo
都满足这些条件,因此将遵循规则。让我们做一个小的调整,以便index.php
不会被路径片段污染:
RewriteRule ^ index.php [L,DPI]
有了它,您就可以进行设置了。:) 但是您当前的规则已经将所有内容发送到
/index.php
,因此对于/au/
URL也应该足够了。嘿,接下来,有一个答案为您解决了问题,还是问题仍然存在?是的-这确实回答了我的问题。正如您所说,所有路径都已通过index.php进行路由,因此我需要执行的任何进一步逻辑都可以应用于index.php。谢谢你让我知道,下次见。:)