.htaccess基于index.php页面使用通配符重定向非现有页面,并将其后面的内容重定向到index.php

时间:2011-12-16 14:30:35

标签: .htaccess redirect wildcard

请帮忙,有些网站会随意向我的主页添加动态查询字符串。

例如我的主页是www.mysite.com/index.php,它们链接到许多链接:

www.mysite.com/index.php?a=something-something-something
www.mysite.com/index.php?a=something-other
www.mysite.com/index.php?a=some-other-thing

这些链接在我的网站上打开,页面内容对于每个页面都是相同的,就像我原来的www.mysite.com/index.php

指向我网站的链接数百个。所以我如何重定向这个:

www.mysite.com/index.php?a=something-something-something
www.mysite.com/index.php?a=something-other
www.mysite.com/index.php?a=some-other-thing
...

www.mysite.com/index.php或仅www.mysite.com/

这是我迄今为止在.htaccess文件中尝试的内容

RedirectMatch 302 ^index.php?a= http://www.www.example-ste.com/
RewriteRule ^/index.php?a=(.*) http://www.example-ste.com/

但仍在网站上开放网页。


另一个类似的问题。

如何将以“?pagewanted = all ”结尾的网页重定向到同一页但没有“?pageswanted = all”

例如,我需要重定向页面:

www.mysite.com/something-something/something.html?pagewanted=all

www.mysite.com/something-something/something.html


您好。

我刚注意到了一些事情。我需要URL重定向规则,它将重定向页面,如:

www.mysite.com/index.php?a=something-something-something
www.mysite.com/index.php?a=something-other
www.mysite.com/index.php?a=some-other-thing

到站点的主页,root。你给了我这段代码:

RewriteEngine On
RewriteBase /

#if the query string has an a parameter
RewriteCond %{QUERY_STRING} (^|&)a= [NC]
#Redirect and remove query string parameters
RewriteRule .*  http://www.mysite.com/? [R=301,L]

我必须说它工作正常,它就是这样,但我只是注意到它以某种方式阻止或重定向包含?a=的所有链接,例如在我有链接的一些临时页面上:

i.php?a=something-something-something

那么,您是否可以为基于index.php的页面采用代码,如:

www.mysite.com/index.php?a=something-something-something

而不是链接:

i.php?a=something-something-something

如果我是对的,它适用于所有带有“a=”的链接,但我只需要“index.php?a=

1 个答案:

答案 0 :(得分:4)

尝试将folloginw添加到.htaccess文件的顶部

RewriteEngine On
RewriteBase /

#if the query string has an a parameter
RewriteCond %{QUERY_STRING} (^|&)a= [NC]
#Redirect and remove query string parameters
RewriteRule .*  http://www.mysite.com/? [R=301,L]

#if the query string has a pagewanted parameter
RewriteCond %{QUERY_STRING} (^|&)pagewanted=all [NC]
#Redirect and remove query string parameters for html pages
RewriteRule (.+\.html)  http://www.mysite.com/$1? [R=301,L]

编辑。 添加了删除pagewanted=all

的规则