我的服务器日志显示,我网站的访问者经常输入导致404的常用关键字,我想将其中一些关键字重定向到我网站中的有意义的网页。
我的 .htaccess 文件目前包含以下内容:
RewriteEngine On
RewriteRule ^download.*$ https://mydomain.jp/jp/download.html [R=301,L,QSA]
因此,如果有人在浏览器中输入mydomain.jp/download
或mydomain.jp/downloads
,则会将其重定向到mydomain.jp/jp/download.html
。问题是我想重定向"下载"和"下载"关键字,无论他们可能遵循哪个子目录。例如,我想重定向所有以下情况:
mydomain.jp/jp/downloads
mydomain.jp/jp/download
mydomain.jp/jp/products/download
mydomain.jp/jp/A/B/C/downloads
但这不是全部。我的网站有两种语言版本,英语完全包含在/en/
子目录中,该子目录具有自己的下载页面语言版本。
所以我想重新定位关键字搜索" download"或"下载"在https://mydomain.jp/en/download.html
下的任何子目录之后使用这两个关键字中的任何一个时,我的英语语言下载页面(/en/
)仅 ,例如:
mydomain.jp/en/downloads
mydomain.jp/en/products/download
mydomain.jp/en/A/B/C/downloads
任何关键字都会搜索"下载"或"下载"在根目录或任何子目录 / en / 以外的其他子目录中应重定向到我的日语下载页面。
我如何做到这一点?
答案 0 :(得分:1)
这应该为您完成,放在您的根.htaccess
文件中,并替换您当前的规则:
RewriteEngine on
RewriteRule ^en/.*(?<=/)downloads?$ https://mydomain.jp/en/download.html [R=301,L]
RewriteRule (?:/|^)downloads?$ https://mydomain.jp/jp/download.html [R=301,L]
如果匹配第一条规则,则第二条规则将无法运行,从而实现了匹配/en/
范围内任意内容的目标。
任何问题都让我知道。