Дружественные урлы!

Автор TirasNET, 22 июня 2006, 11:40:06

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

TirasNET

У меня трабла... Хочу включить дружественые урлы и не получается.
http://tirashotline.org
Галочка стоит, а дружественых урлов нет. Я так понимаю должен быть файл .htaccess а у меня его почему-то нет.
Если не трудно зашлите мне этот файл или помогите слелать как это правильно сделать.
Спасибо!

SAS

а если не секрет какая галочка и где стоит ? :)

TirasNET

Характеристики и Настройки / Основные Настройки / Разрешить дружественные URL (Только для Apache!)
Вот тут стоит галочка!

SAS

#3
форум стоит один или с мостом ?
какая версия php, apache, моста и т.д.?

TirasNET

Только форум. http://tirashotline.org
Apache Version :    1.3.36 (Unix)
PHP Version :            4.4.2
Насчет моста не очень понял....

Нужен файл  .htaccess с правильно прописаным модреврайтем для SMF! Скорей всего трабла в этом. Я сам не знаю как его правильно написать. Если у кого есть такой файл пришлите его мне!

SAS

#5
кто тебе сказал про то что нужен этот файл ?
если бы он был нужен, я думаю он шел бы в дистрибе форума...

посмотрим что ответят спецы по этому форуму, от себя лишь посоветую посмотреть вот этот мод - http://mods.simplemachines.org/index.php?mod=353

TirasNET

ДА! Что-то типа этого мну и нада! Но....
Currently works with 1.0.7 ONLY!
У меня Powered by SMF 1.1 RC2 только сегодня обновил. Прямо из админки. А вот как правильно сделать человекообразные урлы так и не понл :(
: 22 Июня 2006, 17:36:15
ЦитироватьYou must now create the rewrite rules for apache. These rules can be created in either the .htaccess file in your SMF installation directory, or in the httpd.conf or conf.d/ files. If you don't have access to the apache configuration files then you will have to use the .htaccess method.

.htaccess method: Create the following rules in the .htaccess file in the SMF root directory 

httpd.conf method: In the examples below replace "/var/www/html/smfdir" with the ABSOLUTE FILE PATH to your SMF and uncomment the <Directory> and </Directory> lines. Remember to restart apache after making the changes!

The required mod rewrite rules are as follows. Make sure to use the correct one for the flavour of URL you have chosen!

При установке этого мода нужно создать файло.
Кто-то может показать как это правильно сделать?

Pirat

.htaccess не нужен. Smf сам дописывает .html внутренними средствами используя рег. выражения

TirasNET

Какими внутреними средствами?
У меня так и не работает. Есть у кого работает этот самый ЧПУ?

SAS

в конфиге апача модуль mod_rewrite включен ?

TirasNET


Pirat

я думаю вот этими  :)
// Let's do something special for session ids!
if (defined('SID') && SID != '')
$buffer = preg_replace('/"' . preg_quote($scripturl, '/') . '?(?:' . SID . ';)((?:board|topic)=[^#"]+?)(#[^"]*?)?"/e', "'"' . $scripturl . '/' . strtr('$1', '&;=', '//,') . '.html?' . SID . '$2"'", $buffer);
else
$buffer = preg_replace('/"' . preg_quote($scripturl, '/') . '?((?:board|topic)=[^#"]+?)(#[^"]*?)?"/e', "'"' . $scripturl . '/' . strtr('$1', '&;=', '//,') . '.html$2"'", $buffer);

это из QueryString.php
: 23 Июня 2006, 21:38:16
а SMFSEO с SMF 1.1 RC2 не совместим ((

rols

У меня такой вопрос!

Разрешить дружественные URL

А для чего это вообще нужно? где? и что будет? это будет просто как ссылка или .....?


Stern

Цитата: rols от 02 октября 2006, 20:03:17
У меня такой вопрос!
Разрешить дружественные URL
А для чего это вообще нужно? где? и что будет? это будет просто как ссылка или .....?

Слева в админке можно нажать на вопросик рядом с пунктом выбора (чем SMF, кроме своих прочих достоинств и хорош) и получить исчерпывающий ответ:

Эта функция меняет формат URL адреса для более тщательного индексирования поисковыми серверами, после чего они выглядят примерно так: index.php/topic,1.html.
Эта функция работает (или - не работает) на Вашем сервер.
МышЫ плакали, кололись, но продолжали жрать кактус...

rols

Stern
А теперь понял!!
Это как раз то что мне надо и работает она у меня тоже.
Спасибо!

aleksandr.v

А как реализовать это средствами .htaccess??? В админке в пункте выбора дружественных урл написано, что ф-ция не поддерживается... Хотя таже Joomla! на этом хостинге прекрасно делает урл дружественным. Тех. помощь хостинга мне сказала:

Дружественные URL'ы реализуются для каждого сайта или части сайта с помощью команд mod_rewite'а, прописанных в .htaccess...

Mavn

если у вас php работает как cgi то для того чтобы урлы заработали нужно внести определенные фиксы в исходный код форума по другому работать никак не будет.
Хотите при помощи htaccess то используйте seo4smf соответствующую тему можно найти в разделе модов
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

aleksandr.v

Цитата: Mavn от 12 октября 2007, 09:05:44
если у вас php работает как cgi
Да, работает именно как cgi... Спасибо :(

Mavn

Файл  QueryString.php найти

if (!empty($modSettings['queryless_urls']) && (!$context['server']['is_cgi'] || @ini_get('cgi.fix_pathinfo') == 1) && $context['server']['is_apache'])


заменить на

if (!empty($modSettings['queryless_urls']) && ($context['server']['is_cgi'] || @ini_get('cgi.fix_pathinfo') == 1) && $context['server']['is_apache'])


SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

aleksandr.v

Цитата: Mavn от 12 октября 2007, 16:10:09
Файл  QueryString.php найти

if (!empty($modSettings['queryless_urls']) && (!$context['server']['is_cgi'] || @ini_get('cgi.fix_pathinfo') == 1) && $context['server']['is_apache'])


заменить на

if (!empty($modSettings['queryless_urls']) && ($context['server']['is_cgi'] || @ini_get('cgi.fix_pathinfo') == 1) && $context['server']['is_apache'])



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

Солярис

ЦитироватьЭта функция не работает на Вашем сервер.
Каким образом в таком случае сделать, чтобы адреса форума выдавались удобоваримые для систем рейтинга.

aleksandr.v

Цитата: Солярис от 09 ноября 2007, 21:53:53
Каким образом в таком случае сделать, чтобы адреса форума выдавались удобоваримые для систем рейтинга.
У меня на хостинге такая фишка тоже пишется. Если сделать то, что указано постом выше, если php установлен как модуль, то надпись не изменится, но дружественные урл появятся.
Ещё расширение: SEO-4-SMF

Солярис

Цитироватьесли php установлен как модуль
Сие можно разъяснить, плиз? Что означает, если php установлен как модуль?

aleksandr.v

Цитата: Солярис от 09 ноября 2007, 22:27:21
Сие можно разъяснить, плиз? Что означает, если php установлен как модуль?
Тьфу, заговорился, в смысле если как cgi. Это узнаешь у хостера ;)

Солярис

Ответ хостера
ЦитироватьНа сервере есть 3 версии РНР.
PHP5 модуль (по умолчанию)
PHP5 CGI (включается на файлы .php5 через .htaccess)
PHP4 CGI (включается на файлы .php4/.php5/.php через .htaccess)
И?.. Каковы дальнейшие мои действия?

aleksandr.v

Цитата: Солярис от 09 ноября 2007, 23:05:34
Ответ хостераИ?.. Каковы дальнейшие мои действия?
Ну значит у тебя php5 как модуль? Или ты или другой админ установил его через .htaccess как cgi? Короче, попробуй действия, которые приведены шестью постами выше. Не заработает - вернёшь обратно. Заработает - будешь радоваться :) Тока не забудь страницу обновить, после того, как изменения произведёшь. И галочку в любом случае поставь (напротив дружественных url).

Солярис

Запутался окончательно.  :-\
Сделал как написано выше (с файлом QueryString.php) и все равно ничего не получается.
Медленно начинаю звереть knuppel

aleksandr.v

Возможно просто не работает у тебя данная фишка, скорее всего я ошибаюсь, но может это из-за php5. Тебе бы попробывать установить, как сказал хостер, php4, вдруг запашет (но тогда уже точно только с исправлением строчки вышеприведённой). Вообщем кто их знает, этих хостеров.
оффтоп Напиши плиз в личку, что у тебя за хостер, что бы я к такому не шёл, а то выбираю, попаду ещё ненароком, как всегда.

Солярис

Так что же получается? Прощайте дружественные "урлы"? А, следовательно, и какая-либо индексация поисковиками? :(

Mavn

Цитата: Солярис от 10 ноября 2007, 10:01:20
Так что же получается? Прощайте дружественные "урлы"? А, следовательно, и какая-либо индексация поисковиками? :(
я бы не стал говорить что индексироваться не будет форум!!!
На офф сайте к вашему сведению обычные урлы без всяких сео и если посмотрите внимательно в том же гугле то он индексируется достаточно хорошо.
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Солярис

Гугл - это гугл. А наши поисковики и рейтинговые системы?
К примеру, в маил.ру у меня показывается только 4 страницы. Как будто на форуме их столько...


З.Ы. Хочу заметить, что половина из этих несчастных 4 страниц с расширением html.

Mavn

пойдем от обратного http://www.yandex.ru/yandsearch?&p=0&site=simplemachines.ru&text=&ras=1&rd=0
приведите хотя бы один дружественный урл из индексации нашего форума.
Так что не вижу вообще повода для шума!!!
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Солярис

Всё весьма просто. Пользователи, кроме всего прочего, оценивают сайт и по его наполнению.
Если в рейтинге будет постоянно указано только 4 страницы сайта, то это не привлечет новых пользователей, поскольку они будут думать, что на сайте больше ничего нет.

Так, Ваш сайт в системе рейтинга маил.ру на настоящий момент времени показывает 270 страниц. Чувствуете разницу?
А теперь представьте, какое бы маил.ру показал количество страниц Вашего ресурса при обычных адресах, генерируемых SMF.

Что касается Яндекса. Задайте в его поиске, например, запрос: "дружественные урлы" - Ваш сайт будет первым в списке.
Врядли со стандартными адресами поиск Яндекса выдал бы такой же результат.

Солярис

Кроме того, "дружественные урлы" в моем понимании - это адреса, которые, в первую очередь, лучше индексируются различными поисковиками, а не дружелюбны для глаза пользователя.



З.Ы. Лично мне абсолютно все равно как будет выглядеть url в адресной строке браузера, главное, чтобы он индексировался поисковиками. Без этого - сайт обречен.
А как показывает пример: маил.ру не видет стандартные адреса форума, кроме доменного имени, файла индекс.php и двух файлов html.

aleksandr.v

Спроси у хостера, как заставить работать пхп, как php4 cgi. Сделай то, что они скажут. Исправи, как я уже говорил выше, и если не получится, то только расширение SEO4SMF.
Апорт не любит стандартные имена...

Солярис

Цитата: Mavn от 12 октября 2007, 16:10:09
Файл  QueryString.php найти

if (!empty($modSettings['queryless_urls']) && (!$context['server']['is_cgi'] || @ini_get('cgi.fix_pathinfo') == 1) && $context['server']['is_apache'])


заменить на

if (!empty($modSettings['queryless_urls']) && ($context['server']['is_cgi'] || @ini_get('cgi.fix_pathinfo') == 1) && $context['server']['is_apache'])



Ничего не понял. По-моему, это один и тот же код? Что иного написано в другой строке?

aleksandr.v

Восклицательный знак убран... ($context['server']['is_cgi'] - (!$context['server']['is_cgi']

Солярис

SEO4SMF - не ставится как положено.
Да кроме того, там кодировка на форуме должна быть UTF-8.

Mavn

По моду SEO4SMF вопросы в соответствующую тему задавайте
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

Солярис

А по повду не SEO4SMF кто-нибудь может что-либо добавить?



З.Ы.  tickedoff

Солярис

Я не пойму, я что один такой у кого не получается переделать стандартные url'ы?

aleksandr.v

Ну я уже своё предложение сказал. Сделай php в htaccess как cgi - есть шанс, что заработает. Нет - меняй хостера.

Mavn

Цитата: blaster от 10 ноября 2007, 18:04:22
Ну я уже своё предложение сказал. Сделай php в htaccess как cgi - есть шанс, что заработает. Нет - меняй хостера.
я вот смотрю вы уже второе сообщение говорите что php должен работать как cgi хотя на самом то деле данная мулька работает только если php как модуль ане как cgi или fastcgi.

я вот не пойму что все уперлись в SMF4SEo есть ведь и другие моды и ничем не хуже данного мода
например один из них
http://custom.simplemachines.org/mods/index.php?mod=636
Пример использования.
http://dev.eldacar.com/smf/index.php
Конечно работу с русским языком я не тестировал но не стоит упиратся в какое то одно решение есть и другие ...
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

aleksandr.v

Цитата: Mavn от 10 ноября 2007, 18:14:09
я вот смотрю вы уже второе сообщение говорите что php должен работать как cgi хотя на самом то деле данная мулька работает только если php как модуль ане как cgi или fastcgi.
Да, но дело в том что у человека установлен php5 как модуль, и, как видим, не работает ничего. Очень возможно, что если установить отлаженный старенький php4 как cgi, и применить вышеуказанный хак, то всё будет работать отлично, как работает у меня (именно как cgi). Не понимаю, в чём проблема попробовать.

Mavn

ничего подобного... При правильной настройке сервака на php5 тоже работает и без проблем у меня на тестовом серваке стоит PHP: 5.2.4 и все нормально работает.
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

aleksandr.v

Ну и никто и не говорит, что на php5 в принципе невозможно. Такая проблема с php5 которая у хостера данного человека. Может какие модули забыли установить. Или ещё что не настроили. В php4, который доступен как cgi данная проблема на том хостинге вполне может отсутствовать.

Солярис

ЦитироватьПри правильной настройке сервака на php5
А что Вы имели в виду?

aleksandr.v

Хостер мог криво настроить твой php5...

Mavn

если кому нужно то урлы формируются в файле QueryString.php


// Rewrite URLs to include the session ID.
function ob_sessrewrite($buffer)
{
	
global 
$scripturl$modSettings$user_info$context;

	
// If $scripturl is set to nothing, or the SID is not defined (SSI?) just quit.
	
if (
$scripturl == '' || !defined('SID'))
	
	
return 
$buffer;

	
// Do nothing if the session is cookied, or they are a crawler - guests are caught by redirectexit().  This doesn't work below PHP 4.3.0, because it makes the output buffer bigger.
	
// !!! smflib
	
if (empty(
$_COOKIE) && SID != '' && empty($context['browser']['possibly_robot']) && @version_compare(PHP_VERSION'4.3.0') != -1)
	
	
$buffer preg_replace('/"' preg_quote($scripturl'/') . '(?!\?' preg_quote(SID'/') . ')(\?)?/''"' $scripturl '?' SID '&amp;'$buffer);
	
// Debugging templates, are we?
	
elseif (isset(
$_GET['debug']))
	
	
$buffer preg_replace('/"' preg_quote($scripturl'/') . '(\?)?/''"' $scripturl '?debug;'$buffer);

	
// This should work even in 4.2.x, just not CGI without cgi.fix_pathinfo.
	
if (!empty(
$modSettings['queryless_urls']) && (!$context['server']['is_cgi'] || @ini_get('cgi.fix_pathinfo') == 1) && $context['server']['is_apache'])
	
{
	
	
// Let's do something special for session ids!
	
	
if (
defined('SID') && SID != '')
	
	
	
$buffer preg_replace('/"' preg_quote($scripturl'/') . '\?(?:' SID ';)((?:board|topic)=[^#"]+?)(#[^"]*?)?"/e'"'\"' . \$scripturl . '/' . strtr('\$1', '&;=', '//,') . '.html?' . SID . '\$2\"'"$buffer);
	
	
else
	
	
	
$buffer preg_replace('/"' preg_quote($scripturl'/') . '\?((?:board|topic)=[^#"]+?)(#[^"]*?)?"/e'"'\"' . \$scripturl . '/' . strtr('\$1', '&;=', '//,') . '.html\$2\"'"$buffer);
	
}

	
// Return the changed buffer.
	
return 
$buffer;
}


В общем мы у себя на тестовом серваке эксперементируем довольно интересные вещи получаются....
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

ADem

Цитата: Mavn от 12 октября 2007, 16:10:09
Файл  QueryString.php найти

if (!empty($modSettings['queryless_urls']) && (!$context['server']['is_cgi'] || @ini_get('cgi.fix_pathinfo') == 1) && $context['server']['is_apache'])


заменить на

if (!empty($modSettings['queryless_urls']) && ($context['server']['is_cgi'] || @ini_get('cgi.fix_pathinfo') == 1) && $context['server']['is_apache'])



Mavn спасибо большое за подсказку, убрал восклицательный знак из кода, поставил соответствующую галочку в админке, включил кеширование уровень 1 и УРЛ стали ОК, смущает только одно, слишком все легко получилось, так должно и быть? Тебе очередной + от дедушки мороза...
ADem