.htaccess将所有子页面重定向到父页面

时间:2014-03-28 16:15:15

标签: php apache .htaccess mod-rewrite redirect

我想要实现的是重定向这样的页面:

http://mydomain.com/parent/child_no1
http://mydomain.com/parent/child_no2
http://mydomain.com/parent/child_no3

无论是什么之后/ parent /我希望它重定向到/parent/index.php

我在stackoverflow上研究了它,但有很多类似的主题没有答案。所以我自己尝试着它。

这是不起作用的:

RewriteRule ^/parent/.*$ http://mydomain.com/parent/ [R=301,L]

RewriteRule ^/parent/(.*)$ http://mydomain.com/parent/ [R=301,L]

RewriteRule ^parent(/(.*))$ http://mydomain.com/parent/ [R=301,L,NC]

RedirectMatch 301 ^/parent/.*$ http://mydomain.com/parent/

问题是访问http://mydomain.com/parent/也会被重定向,从而导致重定向循环。

有人有解决方案吗?

3 个答案:

答案 0 :(得分:0)

试试这个,(使用网址重写转发请求)

RewriteEngine On
RewriteRule ^parent/(.*)$ /index.php?$1 [QSA,L]

修改

进行实际重复的另一种解决方案

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/parent/index.php$
RewriteRule ^parent/.*$ http:/parent/index.php [R=301,QSA,L]

答案 1 :(得分:0)

以下内容应该有效:

RewriteEngine On
RewriteCond %{REQUEST_URI} !=/parent/index.php
RewriteCond %{REQUEST_URI} !=/parent/
RewriteRule ^parent/(.*)$ http://www.mydomain.com/parent [r=302,L]

除了parent/parent/index.php

之外,应该将所有网页重定向到parent/的内容

如果您确定重定向有效,请将R=302更改为R=301

答案 2 :(得分:0)

这条规则应该照顾它:

RewriteEngine On
RewriteRule ^parent/(?!index\.php).+)$ /parent/index.php [L,NC]