我想要实现的是重定向这样的页面:
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/
也会被重定向,从而导致重定向循环。
有人有解决方案吗?
答案 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]