drupal. Ошибка 404 для страинц старого сайта

M5
На сайте с 03.05.2009
Offline
41
md5
757

суть вопроса в следующем.

Старый сайт был на joomla, теперь на drupal.

от старого в индексе остались http://site.ru/index.php?option=com_content&view=section&layout=blog&id=...

при обращении к таким урлам, выдается главная старинца index, ко всем запросам такого типа одинаковая, и ответ сервера 200

как сделать чтобы при запросе с параметрами option= выдавалась ошибка 404 и заголовок аналогичный

по умолчанию если нету страницы выдается http://site.ru/404

Ragnarok
На сайте с 25.06.2010
Offline
239
#1
md5:
суть вопроса в следующем.
Старый сайт был на joomla, теперь на drupal.
от старого в индексе остались http://site.ru/index.php?option=com_content&view=section&layout=blog&id=...
при обращении к таким урлам, выдается главная старинца index, ко всем запросам такого типа одинаковая, и ответ сервера 200
как сделать чтобы при запросе с параметрами option= выдавалась ошибка 404 и заголовок аналогичный

по умолчанию если нету страницы выдается http://site.ru/404

в коде страницы сверху допиши что-то в стиле


<?php
if(!empty($_GET['option'])) {
header("location: http://site.ru/404");
}
?>

Ragnarok добавил 03.12.2010 в 12:53

только в САМОМ верху. перед <?php не должно быть даже пробела, иначе косяк будет

//TODO: перестать откладывать на потом
M5
На сайте с 03.05.2009
Offline
41
md5
#2

Ragnarok,

сделал так как описано

выдает 302


HTTP/1.1 302 Found
Date: Fri, 03 Dec 2010 10:02:10 GMT
Server: Apache
X-Powered-By: PHP/5.2.9
Set-Cookie: SESS317b8e1203b642344c11059fde9233ea=f58be5611716329d33d0fe681d4fb82; expires=Sun, 26-Dec-2010 13:35:30 GMT; path=/; domain=.site.ru
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Fri, 03 Dec 2010 10:02:10 GMT
Cache-Control: store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
location: http://site.ru/404
Vary: Accept-Encoding,User-Agent
Connection: close
Content-Type: text/html; charset=utf-8
skAmZ
На сайте с 04.09.2009
Offline
122
#3
Ragnarok:
<?php
if(!empty($_GET['option'])) {
header("location: http://site.ru/404");
}
?>


<?php
if(!empty($_GET['option'])) {
header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
header("Location: http://site.ru/404");
exit;
}
?>

skAmZ добавил 03.12.2010 в 13:27

Без header("Location: http://site.ru/404"); думаю можно и вовсе обойтись.

topy
На сайте с 28.03.2006
Offline
142
#4

думаю лучше не лезть в код Друпала, а прописать редирект через .htaccess

ИМХО так будет правильнее

Новости коротко и ясно (https://subnews.ru)
M5
На сайте с 03.05.2009
Offline
41
md5
#5

skAmZ, если без

header("Location: http://site.ru/404");

то выдается ошибка 404 но и пустая страница

если же с этой строчкой, то выдает нормальную страницу ошибки но с кодом 302

md5 добавил 03.12.2010 в 13:39

topy:
думаю лучше не лезть в код Друпала, а прописать редирект через .htaccess
ИМХО так будет правильнее

какой редирект прописать, чтобы выдавал старницу http://site.ru/404 и код 404???? и именно при запросе index.php&?option=

md5 добавил 03.12.2010 в 16:37

тогда такой вопрос возник

как сделать 301 редирект со страницы

на

через mod_rewrite

сейчас дошел до такого



RewriteCond %{QUERY_STRING} ^option=com_content&view=category&id=18$
RewriteRule ^index\.php /text1 [L,R=301]

но выдает так


http://site.ru/text1?option=com_content&view=category&id=18

как исправить?

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