在我的CMS中启用漂亮的网址后,我有以下几页:
www.mydomain.com/cars/
www.mydomain.com/cars/carshome/
www.mydomain.com/cars/honda/
www.mydomain.com/cars/toyota/
...
我希望www.mydomain.com/cars/
的所有请求都转到www.mydomain.com/cars/carshome/
。因此,我一直试图在Apache .htaccess文件中使用(在执行漂亮的URL代码之后):
Redirect 301 /cars https://www.mydomain.com/cars/carshome/
结果是它进入无限循环:
(https://www.mydomain.com/cars/carshome/carshome/carshome/...
)。
如何解决?
第二个问题是,假设上面的解决方案需要在此更改:如何重定向另一个方向(从www.mydomain.com/trucks/truckshome/
到www.mydomain.com/trucks/
)?
答案 0 :(得分:1)
而不是Redirect
您可以使用RedirectMatch
指令来实现其正则表达式功能:
RedirectMatch 301 ^/cars/?$ https://www.mydomain.com/cars/carshome/
答案 1 :(得分:0)
这应该适合你:
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/cars/carshome/(.*)
RewriteRule ^cars/(.*)$ /cars/carshome/$1 [R=301,L]
上面会检查网址是否包含cars/carshome/
,如果包含RewriteCond %{REQUEST_URI} ^/trucks/truckshome/(.*)
RewriteRule ^trucks/truckshome/(.*)$ /trucks/$1 [R=301,L]
,则没有任何反应,但如果没有,则会重定向。
关于第二个问题,这应该有效:
{{1}}