Помогите 404 Not Found

VSNick
На сайте с 14.02.2011
Offline
57
1250

Всем привет.

Сайт на дле.

При вводе в адресную строку site.ru/category/ -страница открывается без проблем, стоит убрать на конце слеш site.ru/category и появляется 404 Not Found.

В чем может быть проблема, как ее исправить?:confused:

Заранее спасибо за помощь.

gormarket
На сайте с 29.12.2010
Offline
47
#1

Может у Вас в файле htaccess в строке

RewriteRule ^([^.]+)/?$ index.php?do=cat&category=$1 [L]

нет первого вопросительного знака ?

Товары и цены в магазинах Вашего города: Городской рынок (http://gormarket.ru/)
VSNick
На сайте с 14.02.2011
Offline
57
#2
gormarket:
Может у Вас в файле htaccess в строке

RewriteRule ^([^.]+)/?$ index.php?do=cat&category=$1 [L]

нет первого вопросительного знака ?

Спасибо. Судя по всему это баг. Но проблема все-равно остается актуальной.

C
На сайте с 04.02.2005
Offline
291
#3

VSNick, а что вы хотите этим получить? Дублирование контента?

VSNick
На сайте с 14.02.2011
Offline
57
#4

Chukcha, нет.

Все страницы категорий без слеша яндекс определяет как страницы с ошибкой.

Это есть хорошо?

C
На сайте с 04.02.2005
Offline
291
#5

А... т.е. Я уже о них знает...

Так делайте 301 редирект на страницы со слешем.

TakingBackMySoul
На сайте с 09.11.2011
Offline
65
#6

Либо забей на ошибку и убери все линки на страницы без слеша, либо избавься от ошибок создав редирект и похакав ДЛЕ, мануал ниже...

Уничтожение слешей в категориях:

в /engine/modules/functions.php ищи function get_categories ($id)

в ней ищи

if( $config['allow_alt_url'] == "yes" ) $list = "<a href=\"" . $config['http_home_url'] . get_url( $id ) . "/\">{$cat_info[$id]['name']}</a>";

меняй на

if( $config['allow_alt_url'] == "yes" ) $list = "<a href=\"" . $config['http_home_url'] . get_url( $id ) . "\">{$cat_info[$id]['name']}</a>";

ищи

if( $config['allow_alt_url'] == "yes" ) $list = "<a href=\"" . $config['http_home_url'] . get_url( $parent_id ) . "/\">{$cat_info [$parent_id]['name']}</a>" . " &raquo; " . $list;

меняй на

if( $config['allow_alt_url'] == "yes" ) $list = "<a href=\"" . $config['http_home_url'] . get_url( $parent_id ) . "\">{$cat_info [$parent_id]['name']}</a>" . " &raquo; " . $list;

TakingBackMySoul добавил 10.11.2011 в 20:17

Теперь убираются слеши из навигации

в /engine/modules/show.short.php

ищи

$prev_page = $url_page . "/";

меняй на:

$prev_page = $url_page . "";

ищи

$prev_page = $url_page . "/page/" . $prev . "/";

меняй на:

$prev_page = $url_page . "/page/" . $prev . "";

ищи:

$pages .= "<a href=\"" . $url_page . "/\">$j</a> ";

меняй на:

$pages .= "<a href=\"" . $url_page . "\">$j</a> ";

ищи:

$pages .= "<a href=\"" . $url_page . "/page/" . $j . "/\"> $j</a> ";

меняй на:

$pages .= "<a href=\"" . $url_page . "/page/" . $j . "\"> $j</a> ";

ищи:

if( $config['allow_alt_url'] == "yes" ) $pages .= "<a href=\"" . $url_page . "/\">1</a> <span class=\"nav_ext\">{$lang['nav_trennen']}</span> ";

меняй на:

if( $config['allow_alt_url'] == "yes" ) $pages .= "<a href=\"" . $url_page . "\">1</a> <span class=\"nav_ext\">{$lang['nav_trennen']}</span> ";

ищи:

$pages .= "<a href=\"" . $url_page . "/\">$j</a> ";

меняй на:

$pages .= "<a href=\"" . $url_page . "\">$j</a> ";

ищи:

$pages .= "<a href=\"" . $url_page . "/page/" . $j . "/\">
$j</a> ";

меняй на:

$pages .= "<a href=\"" . $url_page . "/page/" . $j . "\">
$j</a> ";

ищи:

if( $config['allow_alt_url'] == "yes" ) $pages .= $nav_prefix . "<a href=\"" . $url_page . "/page/{$enpages_count}/\">{$enpages_count}</a>";

меняй на:

if( $config['allow_alt_url'] == "yes" ) $pages .= $nav_prefix . "<a href=\"" . $url_page . "/page/{$enpages_count}\">{$enpages_count}</a>";

ищи:

$next = $url_page . '/page/' . $next_page . '/';

меняй на:

$next = $url_page . '/page/' . $next_page . '';

TakingBackMySoul добавил 10.11.2011 в 20:18

Убираем слеши из тегов

в /engine/modules/show.short.php

ищи:

if( $config['allow_alt_url'] == "yes" ) $tags[] = "<a href=\"" . $config['http_home_url'] . "tags/" . urlencode( $value ) . "/\">" . $value . "</a>";

меняй на:

if( $config['allow_alt_url'] == "yes" ) $tags[] = "<a href=\"" . $config['http_home_url'] . "tags/" . urlencode( $value ) . "\">" . $value . "</a>";

в /engine/modules/tagscloud.php

ищи:

$tags[] = "<a href=\"".$config['http_home_url']."tags/".urlencode($value['tag'])."/\" class=\"{$value['size']}\" title=\"".$lang ['tags_count']." ".$value['count']."\">".$value['tag']."</a>";

меняй на:

$tags[] = "<a href=\"".$config['http_home_url']."tags/".urlencode($value['tag'])."\" class=\"{$value['size']}\" title=\"".$lang ['tags_count']." ".$value['count']."\">".$value['tag']."</a>";

ищи:

$tpl->result['tags_cloud'] .= "<br /><br /><a href=\"".$config['http_home_url']."tags/\">".$lang['all_tags']."</a>";

меняй на:

$tpl->result['tags_cloud'] .= "<br /><br /><a href=\"".$config['http_home_url']."tags\">".$lang['all_tags']."</a>";

ищи:

$tags[] = "<a href=\"".$config['http_home_url']."tags/".urlencode($value['tag'])."/\" class=\"{$value['size']}\" title=\"".
$lang['tags_count']." ".$value['count']."\">".$value['tag']."</a>";

меняй на:

$tags[] = "<a href=\"".$config['http_home_url']."tags/".urlencode($value['tag'])."\" class=\"{$value['size']}\" title=\"". $lang['tags_count']." ".$value['count']."\">".$value['tag']."</a>";

TakingBackMySoul добавил 10.11.2011 в 20:18

в /engine/modules/show.custom.php

ищи:

if( $config['allow_alt_url'] == "yes" ) $tags[] = "<a href=\"" . $config['http_home_url'] . "tags/" . urlencode( $value ) . "/\">" . $value . "</a>";

меняй на:

if( $config['allow_alt_url'] == "yes" ) $tags[] = "<a href=\"" . $config['http_home_url'] . "tags/" . urlencode( $value ) . "\">" . $value . "</a>";

в /engine/modules/show.full.php

ищи:

if( $config['allow_alt_url'] == "yes" ) $tags[] = "<a href=\"" . $config['http_home_url'] . "tags/" . urlencode(
$value ) . "/\">" . $value . "</a>";

меняй на:

if( $config['allow_alt_url'] == "yes" ) $tags[] = "<a href=\"" . $config['http_home_url'] . "tags/" . urlencode( $value ) . "\">" . $value . "</a>";

Открывай файл: /engine/engine.php

ищи:

if ($config['allow_alt_url'] == "yes") $s_navigation .= " &raquo; <a href=\"" . $config['http_home_url'] . "tags/\">" . $lang
['tag_cloud'] . "</a> &raquo; " . $tag;

меняй на:

if ($config['allow_alt_url'] == "yes") $s_navigation .= " &raquo; <a href=\"" . $config['http_home_url'] . "tags\">" . $lang
['tag_cloud'] . "</a> &raquo; " . $tag;

открывай .htaccess

ищи:

RewriteRule ^tags/([^/]*)(/?)+$ index.php?do=tags&tag=$1 [L]
RewriteRule ^tags/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=tags&tag=$1&cstart=$2 [L]

меняй на:

RewriteRule ^tags$ index.php?do=tags [L]
RewriteRule ^tags/([^/]*)(/?)+$ index.php?do=tags&tag=$1 [L]
RewriteRule ^tags/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=tags&tag=$1&cstart=$2 [L]

З.Ы. Изначально сделал проще, но видимо мой пост нарушил правила форума по каким то причинам (наверно за спам) и его пофиксили.

WebAlt
На сайте с 02.12.2007
Offline
266
#7
VSNick:
Спасибо. Судя по всему это баг. Но проблема все-равно остается актуальной.

Это не баг, ошибку 404 для каталогов без слеша специально сделали в v.9.4, для исключения дублей. Раньше было 200.

Поставьте редирект на слеш в htaccess и будет вам счастье:

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^([^.]+)(?<!/)$ /$1/ [L,R=301]

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