Вырезать фрагмент из адреса страницы на сайте!

cadron
На сайте с 27.02.2011
Offline
100
1562

Здравствуйте!

Есть сайт site.ru

Как сделать чтобы при обращении к сайту по адресу:

site.ru/?=1.html выполнялось перенаправление на адрес site.ru/1.html существующую страницу????

И так далее, т.е если попадался в адресе "?=" то вырезался и перенаправлялся на существующую страницу!

Спасибо!

nash
На сайте с 01.04.2006
Offline
171
#1


<?
$url=str_replace("?=","",$_SERVER['REQUEST_URI']);
header('HTTP/1.1 301 Moved Permanently');
header("Location: http://site".$url);
?>
cadron
На сайте с 27.02.2011
Offline
100
#2
nash:

<?
$url=str_replace("?=","",$_SERVER['REQUEST_URI']);
header('HTTP/1.1 301 Moved Permanently');
header("Location: http://site".$url);
?>

А где это прописывать?

А с помощью .htaccess можно это решить?

nash
На сайте с 01.04.2006
Offline
171
#3
cadron:
А где это прописывать?
А с помощью .htaccess можно это решить?

Это часть кода php файла, соответственно нужно в php скрипт вставлять, можно и с помощью htaccess но тут не подскажу

siv1987
На сайте с 02.04.2009
Offline
427
#4
cadron:
А с помощью .htaccess можно это решить?

Можно

RewriteEngine On

RewriteCond %{QUERY_STRING} ^=(.+)$

RewriteRule ^$ /%1? [R=301,L]

nash:
$url=str_replace("?=","",$_SERVER['REQUEST_URI']);
header('HTTP/1.1 301 Moved Permanently');
header("Location: http://site".$url);

Без проверки - хреновой пример, будет редиректить все подряд.

cadron
На сайте с 27.02.2011
Offline
100
#5
nash:
Это часть кода php файла, соответственно нужно в php скрипт вставлять, можно и с помощью htaccess но тут не подскажу

Спасибо!

Но у меня адресов таких очень много, с которых надо перенаправлять!

---------- Добавлено 11.07.2013 в 14:41 ----------

siv1987:
Можно

RewriteEngine On
RewriteCond %{QUERY_STRING} ^=(.+)$
RewriteRule ^$ /%1? [R=301,L]


т.е будет вырезаться из адреса, если стучаться по всем страницам где встречается "?="

---------- Добавлено 11.07.2013 в 15:48 ----------

siv1987:
Можно

RewriteEngine On
RewriteCond %{QUERY_STRING} ^=(.+)$
RewriteRule ^$ /%1? [R=301,L]


Без проверки - хреновой пример, будет редиректить все подряд.



Работает! ТОлько кода вырезает получается адрес:
site.ru//1.html
Как убрать второй/
cadron
На сайте с 27.02.2011
Offline
100
#6
cadron:
Спасибо!
Но у меня адресов таких очень много, с которых надо перенаправлять!

---------- Добавлено 11.07.2013 в 14:41 ----------

siv1987:
Можно

RewriteEngine On
RewriteCond %{QUERY_STRING} ^=(.+)$
RewriteRule ^$ /%1? [R=301,L]


т.е будет вырезаться из адреса, если стучаться по всем страницам где встречается "?="

---------- Добавлено 11.07.2013 в 15:48 ----------




Работает! ТОлько кода вырезает получается адрес:
site.ru//1.html
Как убрать второй/



Разобрался! Спасибо!
Скажите а как убрать тот же "?=" из адреса site.ru/papka/?=1.html и site.ru/vlog/?=1.html
????
Спасибо!
siv1987
На сайте с 02.04.2009
Offline
427
#7
cadron:
Работает! ТОлько кода вырезает получается адрес:
site.ru//1.html
Как убрать второй/

поменять рег выражение на ^=/?(.+)$

---------- Добавлено 12.07.2013 в 17:11 ----------

cadron:
Скажите а как убрать тот же "?=" из адреса site.ru/papka/?=1.html и site.ru/vlog/?=1.html

RewriteEngine On

RewriteCond %{QUERY_STRING} ^=/?(.+)$

RewriteRule ^(.*)$ /$1%1? [R=301,L]

cadron
На сайте с 27.02.2011
Offline
100
#8
siv1987:
поменять рег выражение на ^=/?(.+)$

---------- Добавлено 12.07.2013 в 17:11 ----------



RewriteEngine On
RewriteCond %{QUERY_STRING} ^=/?(.+)$
RewriteRule ^(.*)$ /$1%1? [R=301,L]

Спасибо огромное!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий