Slash-Zn
@Slash-Zn

Убрать часть URL?

Здравствуйте!
Необходимо убрать из url эту часть index.php?do=/.
Страница доступна по двум адресам, например:
/forum/thread/1068/
/index.php?do=/forum/thread/1068/

Или:
/blog/18/
/index.php?do=/blog/18/

ПС определяет дубли... Подскажите, как правильно сделать перенаправление на url, где нет index.php?do=/.
Спасибо.

Пробовал так:
RewriteRule ^index.php?do=(.*)$ $1 [R=301,L]
и так:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) index.php?do=/$1

Не хочет работать...
  • Вопрос задан
  • 1384 просмотра
Решения вопроса 1
Slash-Zn
@Slash-Zn Автор вопроса
Не выходит у меня удалить часть url на Апатче, сделал на php:
$request = $_SERVER['REQUEST_URI'];

		if (stristr($request, 'index.php?do=/') !== false)
		{
			$url = str_replace('index.php?do=/', '', $request);

			header('Location: ' . $url, true, 301);
			exit;
		}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
RewriteCond %{QUERY_STRING} (^|&)do\=(.+)($|&)
#Если    гет запрос содержит do= и более 1 знака, так же по краям  (^|&)($|&)  - это поскольку гет может быть вторым а следовательно начинаться с &
RewriteRule ^(.*) /%2 [L,R=301]
#то перенаправить на %2 -  это аналог $2 только из конда ( вторая скобка из конда)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы