高级htaccess - 301域重定向

时间:2013-10-24 16:06:24

标签: php .htaccess redirect

我想将旧域重定向到新域。我有两个版本的网站 - 波兰语和英语。我拥有的域名是:live-dent.pl,live-dent.com,live-dent.com.pl和livedent.pl。 我想重定向:

  • (www。)live-dent.pl/index.php,(www.)live-dent.com/index.php,(www.)live-dent.com.pl/index.php和livedent.pl /index.php到 www.livedent.pl(没有破折号),
  • (www。)live-dent.pl/index_en.php,(www.init-dent.com/index_en.php,(www.)live-dent.com.pl/index_en.php和livedent.pl /index_en.php到 www.live-dent.com(带破折号)。

为此,我想将404错误重定向到自定义页面。抛光此文件版本的路径是:

  • www.livedent.pl/404.php和
  • www.live-dent.com/404_en.php英文版(此文件现在不存在)。

我现在的代码(感谢@anubhava)是:

RewriteEngine On

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+index_en\.php [NC]
RewriteRule ^ http://www.live-dent.com/ [R=301,L,NC]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+index\.php [NC]
RewriteRule ^ / [R=301,L,NC]

RewriteCond %{HTTP_HOST} live-dent\.pl$ [NC]
RewriteRule ^ http://www.livedent.pl%{REQUEST_URI} [R=301,L]

规则ErrorDocument 404 /404.php不起作用。

1 个答案:

答案 0 :(得分:1)

假设所有这些域共享相同的文档根目录:

RewriteCond %{HTTP_HOST} ^(www\.)?live-dent\.(pl|com|com\.pl)$ [OR,NC]
RewriteCond %{HTTP_HIST} ^livedent\.pl$ [NC]
RewriteCond %{THE_REQUEST} \ /+index\.php
RewriteRule ^ http://www.livedent.pl/ [L,R=301]

RewriteCond %{HTTP_HOST} ^(www\.)?live-dent\.(pl|com|com\.pl)$ [OR,NC]
RewriteCond %{HTTP_HIST} ^livedent\.pl$ [NC]
RewriteCond %{THE_REQUEST} \ /+index_en\.php
RewriteRule ^ http://www.live-dent.com/ [L,R=301]