【问题标题】:Htacess Multi languageHtaccess 多语言
【发布时间】:2019-04-01 16:22:00
【问题描述】:

我试图在我的 htaccess 上做一个多语言错误文档。 但它不会进入我原来的 404 错误页面,或者它只是进入其中一个错误页面。

我只是想检查文件夹,如果文件夹是“pt”,它会转到葡萄牙语404error页面,否则它会转到相应语言的其他页面。

我已经尝试了更多示例,但没有帮助我。

下面有一些我已经尝试过的代码。

尝试#1

ErrorDocument 404 http://www.teleondagroup.com/novosite/Teleonda/
RewriteRule ^([a-z]{2}) $1/404error.php [L]

尝试#2

RewriteRule ^(pt)/ /$1/404error.php [R,L]
ErrorDocument 404 http://www.teleondagroup.com/novosite/Teleonda/pt/404error.php

RewriteRule ^(en)/ /$1/404error.php [R,L]
ErrorDocument 404 http://www.teleondagroup.com/novosite/Teleonda/en/404error.php

我已经解决了这个网站的问题。

https://webmasters.stackexchange.com/questions/47974/separate-404-page-for-subdirectory

【问题讨论】:

标签: .htaccess errordocument


【解决方案1】:

你可以使用类似下面的东西:

RewriteEngine on

#if a file or directory doesn't exist in a particular folder
RewriteCond %{DOCUMENT_ROOT}/$0 !-f [OR]
RewriteCond %{DOCUMENT_ROOT}/$0  !-d
#redirect the request to /errorpage.php in that folder
RewriteRule ^([^/]+)/.*$ /$1/errorpage.php [L,R]

这会将 404 Uri 重定向到位于请求目录中的 /errorpage.php 文件,即 . example.com/demo/brokenlink.phpexample.com/demo/errorpage.php

或者,如果这只是针对单个目录/pt,您可以使用以下内容:

 RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?pt.*$ /pt/errorpage.php [L,R]

【讨论】:

  • 它不起作用,我尝试过,但它会将我重定向到 404 错误页面的空白页面,而不是来自 /teleonda/pt/errorpage.php 或 /teleonda/en/errorpage.php 的错误页面,
  • 我已经解决了这个网站的问题。 webmasters.stackexchange.com/questions/47974/…
猜你喜欢
  • 2012-12-10
  • 2018-03-16
  • 1970-01-01
  • 2012-04-16
  • 1970-01-01
  • 2013-11-07
  • 1970-01-01
  • 2021-06-17
相关资源
最近更新 更多