.htaccess перенаправляет несуществующие страницы на основе страницы index.php с подстановочным знаком и чем-то после него в index.php - PullRequest
1 голос
/ 16 декабря 2011

Пожалуйста, помогите, какой-то сайт произвольно добавляет динамические строки запроса на мою домашнюю страницу.

Например, моя домашняя страница 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 ", на ту же страницу, но без этого "? Pagewanted = all"

Например, мне нужно перенаправить страницу:

www.mysite.com / что-то с чем-то / something.html? Pagewanted = все

до

www.mysite.com / что-то с чем-то / something.html


Hello.

Я только что заметил что-то. Мне нужно правило перенаправления 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 Ответ

4 голосов
/ 16 декабря 2011

Попробуйте добавить 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

...