.htaccess仅当URL不存在时才重定向到另一个站点的主页

时间:2019-01-14 21:34:18

标签: .htaccess

这就是我要完成的工作,我会尽力解释...

通过.htaccess文件,我试图将一个站点的所有页面重定向到另一个站点,但是仅在URL不存在的情况下。如果该URL存在,则什么也不做。加载该URL。如果该URL不存在,请重定向到另一个站点的主页。

因此,转到www.johnny.com/boxing(无文件)或什至只是www.johnny.com(无文件)都将重定向到www.johnpunches.com,因为这两个URL都不起作用。这将适用于www.johnny.com上不存在的任何URL。它将直接重定向到www.johnpunches.com的索引​​页面

但是,由于该页面存在,进入www.johnny.com/members(有工作目录)实际上将转到该URL而不重定向。

因此,同样,如果URL存在,则什么也不做。加载该URL。如果该URL不存在,请重定向到另一个站点的主页。

2 个答案:

答案 0 :(得分:0)

RewriteEngine On
# File does not exist
RewriteCond %{REQUEST_FILENAME} !-f
# Directory does not exist
RewriteCond %{REQUEST_FILENAME} !-d
# Redirect to new domain if the above were missing
RewriteRule ^(.+)$ https://www.google.com/$1 [NC,QSA]

Change out google.com to whatever domain you are redirecting to.

答案 1 :(得分:0)

好的,我能够从另一个线程获得一些帮助并将其整合在一起:

RewriteEngine on
RewriteCond %{http_host} ^johnny.com [nc]
RewriteRule ^(.*)$ http://www.johnny.com/$1 [r=301,nc,l]
RewriteRule !^folder($|/) http://www.johnkicks.com [L,R=301]

在上面的示例中,“文件夹”可以替换为任何有效的目录。第二行和第三行在最终规则运行之前强制使用网站的www版本,以便使任何有效的URL(例如johnny.com/folder)都重定向到www.johnny.com/folder。

两个问题:

  • 我做对了吗?我的规则顺序有效吗?我应该做些不同的事情吗?
  • 我必须为每个工作目录复制第四行吗?