Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache .htaccess mod_重写国家代码前缀_Apache_.htaccess_Mod Rewrite_Internationalization - Fatal编程技术网

Apache .htaccess mod_重写国家代码前缀

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
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。谢谢你让我知道,下次见。:)