0 Пользователей и 1 Гость просматривают эту тему.
  • 0 Ответов
  • 944 Просмотров
*

Tobi_108

  • Новичок
  • 5
  • 0
Добрый день.
Пытаюсь воскресить ЧПУ для Joomla 1.5 + VirtueMart 1.1.3.
Странная штука, на сайте половина ссылок ЧПУ-шные, и имеют вид: МойСайт/Категория/Подкатегория/Название Товара. И половина index.php?option=com_virtuemart&page=shop.browse&category_id=000&Itemid=0 - то есть не ЧПУ-шные. При поиске в чем причина было найдена связка htaccess с mod_rewrite
Код
RewriteEngine on
RewriteCond %{HTTP_HOST} ^mysite\.com
RewriteRule ^(.*)$ http://www.mysite.com/$1 [R=permanent,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]
и файл в корне сайта rewrite.php
Код
<?php
$pdo=new PDO('mysql:dbname=your_dbname;host=your_host','name_db','pass_db');
if(isset($_GET['page']) && $_GET['page']=='shop.product_details')
{
if($url=$pdo->query('SELECT url FROM sema_sef WHERE id='.$pdo->quote($_GET['product_id']).' AND cat>0')->fetchColumn())
{
echo "/".$url;
header("HTTP/1.1 301 Moved Permanently");
header("Location: /".$url);
die();
}
}
elseif(isset($_GET['page']) && $_GET['page']=='shop.browse')
{
if(isset($_GET['category_id']))
{
if($url=$pdo->query('SELECT url FROM sema_sef WHERE id='.$pdo->quote($_GET['category_id']).' AND cat=0')->fetchColumn())
{
$add=array();
if(isset($_GET['limit']))
$add[]='limit='.$_GET['limit'];
if(isset($_GET['limit']))
$add[]='limitstart='.$_GET['limitstart'];
if(isset($_GET['orderby']))
$add[]='orderby='.$_GET['orderby'];
if(isset($_GET['DescOrderBy']))
$add[]='DescOrderBy='.$_GET['DescOrderBy'];
if($add==array())
$add='';
else
$add='?'.implode('&',$add);
//echo "/".$url.$add;
header("HTTP/1.1 301 Moved Permanently");
header("Location: /".$url.$add);
die();
}
}
elseif(isset($_GET['manufacturer_id']))
{
if($url=$pdo->query('SELECT url FROM sema_sef WHERE id='.$pdo->quote($_GET['manufacturer_id']).' AND cat=-1')->fetchColumn())
{
$add=array();
if(isset($_GET['limit']))
$add[]='limit='.$_GET['limit'];
if(isset($_GET['limit']))
$add[]='limitstart='.$_GET['limitstart'];
if(isset($_GET['orderby']))
$add[]='orderby='.$_GET['orderby'];
if(isset($_GET['DescOrderBy']))
$add[]='DescOrderBy='.$_GET['DescOrderBy'];
if($add==array())
$add='';
else
$add='?'.implode('&',$add);
//echo "/".$url.$add;
header("HTTP/1.1 301 Moved Permanently");
header("Location: /".$url.$add);
die();
}
}
}
else
{
if($fin=strpos($_SERVER['REQUEST_URI'],'?'))
$sru=substr($_SERVER['REQUEST_URI'],1,$fin-1);
else
$sru=substr($_SERVER['REQUEST_URI'],1);
if($res=$pdo->query('SELECT id,cat FROM sema_sef WHERE url='.$pdo->quote($sru))->fetch(PDO::FETCH_ASSOC))
{
//category
if($res['cat']==0)
{
$_GET['page']='shop.browse';
$_GET['category_id']=$res['id'];

}
elseif($res['cat']==-1)
{
$_GET['page']='shop.browse';
$_GET['manufacturer_id']=$res['id'];
}
else
{
$_GET['page']='shop.product_details';
$_GET['category_id']=$res['cat'];
$_GET['product_id']=$res['id'];
//$_GET['flypage']='flypage-images.tpl';
$_REQUEST['product_id']=$_GET['product_id'];
//$_REQUEST['flypage']=$_GET['flypage'];
}
$_GET['Itemid']='4';
$_REQUEST['Itemid']=$_GET['Itemid'];
$_GET['option']='com_virtuemart';
$_REQUEST['option']=$_GET['option'];
$_REQUEST['page']=$_GET['page'];
$_REQUEST['category_id']=$_GET['category_id'];
$tmp=array();
foreach($_GET as $k=>$v)
{
$tmp[]="$k=$v";
}
$_SERVER['REQUEST_URI']='/index.php?'.implode("&",$tmp);
}

//print_r($_GET);
//print_r($_SERVER['REQUEST_URI']);
}
//}
При выключение этой связки все ссылки принимают вид: index.php?option=com_virtuemart&page=shop.browse&category_id=000&Itemid=0, в то время как он включен половина ссылок до определенного времени имеют вид ЧПУ, остальные обычные.
Подскажите пожалуйста, кто сталкивался, куда копать, что смотреть?
Спасибо большое! !
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Перестают работать ссылки после включения mod_rewrite

Автор ramo

Ответов: 5
Просмотров: 6250
Последний ответ 06.06.2016, 22:54:27
от poopkin
Красивые ссылки без включения SEF. Возможно?

Автор Loh

Ответов: 3
Просмотров: 434
Последний ответ 23.11.2015, 15:29:45
от Loh
Как убрать подкатегории из URL с помощью Artio JoomSEF?

Автор palivotttt

Ответов: 0
Просмотров: 531
Последний ответ 06.05.2015, 13:01:44
от palivotttt
mod_rewrite - неправильно отображается URL сайта

Автор polkan

Ответов: 11
Просмотров: 2167
Последний ответ 07.05.2012, 16:48:52
от polkan
Не хочет работать mod_rewrite

Автор cantsave

Ответов: 9
Просмотров: 1977
Последний ответ 22.12.2011, 11:50:31
от switch