.htaccess 基于目录的错误页重定向
我的网站有两个本地化内容,即EN和FR,内容将通过URL呈现:.htaccess 基于目录的错误页重定向,.htaccess,mod-rewrite,vhosts,.htaccess,Mod Rewrite,Vhosts,我的网站有两个本地化内容,即EN和FR,内容将通过URL呈现:http://www.example.com/en/和http://www.example.com/fr/ 我想为每个区域设置实现不同的错误页面,但我不知道如何通过重定向/虚拟主机配置实现 我了解到每个目录都有不同的.htaccess文件,但这不起作用 帮助会很好。提前感谢。拥有不同的。htaccess非常有效,例如 /-+- en -- .htaccess | +- fr -- .htaccess 在/en/.htacce
http://www.example.com/en/
和http://www.example.com/fr/
我想为每个区域设置实现不同的错误页面,但我不知道如何通过重定向/虚拟主机配置实现
我了解到每个目录都有不同的.htaccess
文件,但这不起作用
帮助会很好。提前感谢。拥有不同的
。htaccess
非常有效,例如
/-+- en -- .htaccess
|
+- fr -- .htaccess
在/en/.htaccess
中,您有
ErrorDocument 404 /path/to/en/error404.html
与/fr/.htaccess
ErrorDocument 404 /path/to/fr/error404.html
您还可以将错误文档放在同一目录中并按扩展名进行区分,例如
error404.en.htaml
和error404.fr.html
。那么你有
ErrorDocument 404 /path/to/error404.en.html
及
分别
如果不想使用
.htaccess
文件,可以使用或指令实现相同的功能。在主主机或虚拟主机配置中,如下所示
<Directory "/path/to/example.com/en">
ErrorDocument 404 /path/to/error404.en.html
</Directory>
<Directory "/path/to/example.com/fr">
ErrorDocument 404 /path/to/error404.fr.html
</Directory>
ErrorDocument 404/path/to/error404.en.html
ErrorDocument 404/path/to/error404.fr.html
指令看起来类似。在Apache 2.4上,您可以使用表达式:
# for /fr/ URIs
<If "%{REQUEST_URI} =~ m#^/fr/#">
ErrorDocument 404 /fr-404.html
</If>
# for /en/ URIs
<If "%{REQUEST_URI} =~ m#^/en/#">
ErrorDocument 404 /en-404.html
</If>
但是请记住,Apache 2.2解决方案将向客户端返回
200
状态。@anubhava:它们不是实际的物理目录,而是文件系统中其他文件的代理。还要告诉我您的Apache版本吗?@anubhava Apache 2.2使用Location指令的最终方法有效!谢谢@Olaf
# for /fr/ URIs
<If "%{REQUEST_URI} =~ m#^/fr/#">
ErrorDocument 404 /fr-404.html
</If>
# for /en/ URIs
<If "%{REQUEST_URI} =~ m#^/en/#">
ErrorDocument 404 /en-404.html
</If>
RewriteEngine On
# for /fr/ URIs
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^fr/ /fr-404.html [L]
# for /en/ URIs
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^en/ /en-404.html [L]