使用 .htaccess 将特定的 URL 重定向到另一个 URL

21

我想要一个别名,并将URL tz433.tld/jobs/ 重定向到页面 tz433.tld/about-us/jobs/

目前我尝试了以下方法,但不起作用:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.tz433\.tld/jobs/$
RewriteRule (.*) http://tz433.tld/about-us/jobs.html [R=301,L]
问题是,这个根路径下有多个域名,因为它是一个多站点的typo3安装。因此,像“将 /jobs 重定向到 /about-us/jobs”这样的内容不起作用,因为它只应该针对特定的域名(tz433)发生。
下一个具体问题是,www.tz433.tld 会自动重定向到 tz433.tld。因此,www.tz433.tld/jobs/tz433.tld/jobs 都应该重定向到 tz433.tld/about-us/jobs.html。如何成功实现这一点?

2个回答

25

如果你希望规则只在域名为"tz433.tld"时执行,你需要这个条件:

如果您想让规则仅在域名为"tz433.tld"时执行,则需要此条件:

RewriteCond %{HTTP_HOST} ^(www\.)?tz433\.tld

如果您想将"jobs/""jobs"重定向到"tz433.tld/about-us/jobs.html",您可以尝试以下方法之一:

RewriteRule ^jobs/? /about-us/jobs.html [R=301,L]
# or
RewriteRule ^jobs/? http://tz433.tld/about-us/jobs.html [R=301,L]

@5ervant,我也想做同样的事情,但是你的解决方案对我不起作用。我正在使用WordPress,并且希望在URL中包含“/for-your-practice/”时重定向到另一个URL。请问可能出了什么问题?这是我所做的: RewriteRule ^for-your-practice/? /product-category/for-your-practice [R=301,L] - Habib Rehman

18

如果有人只是对简单的重定向感兴趣,可以尝试这个:

Redirect /URL URLtoRedirect
Redirect /old-url https://mywebsite.com/new-url

也许我做错了,但这对我不起作用。在此之前,我不需要使用重定向条件吗? - eLeMeNOhPi
1
@eLeMeNOhPi 不需要任何东西,只需将上面的代码行放入您的htaccess文件中即可。 - Iftikhar uddin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接