[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Добавление расширения .html в конец строки
Columb
доброго времени суток всем! Вот "прибило" меня такую фигню прикрутить. Как добавить в конец строки расширение с помощью mod_rewrite.

.htaccess такой как в курсах тут

AddDefaultCharset UTF-8
php_flag magic_quotes_gpc Off
php_flag magic_quotes_runtime Off
php_flag register_globals Off
ErrorDocument 401 /401.html
ErrorDocument 403 /403.html
ErrorDocument 404 /404.html
Options -Indexes

#php_value error_reporting 2047
#php_value error_log "./log/error.log"
#php_flag log_errors on
#php_flag display_errors off

RewriteEngine on

RewriteCond %{REQUEST_URI} !^/favicon.ico
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]


Как его переписать, чтобы ссылка имела вид
http://mysite/news.html
в не такой
http://mysite/news
Пытался разобраться сам не нифига не понял.



Спустя 1 час, 14 минут, 34 секунды (1.04.2011 - 06:09) neadekvat написал(а):
Просто добавляйте к ссылке .html, а при разборе адреса имейте в виду, что надо лишний .html отсечь.

Спустя 5 часов, 26 минут, 53 секунды (1.04.2011 - 11:36) VELIK505 написал(а):
То есть если я правильно понял.
У тебя допустим ссылка звучит так:
mysite.ru/news.php

а тебе надо чтобы было:
mysite.ru/news.html

То в своём корневом .htaccess пропиши:
RewriteRule ^([^/]+)\.html$ $1.php [L]

и все ссылки прописывай уже не
news.php а
news.html

Спустя 24 дня, 13 часов, 13 минут, 14 секунд (26.04.2011 - 00:50) Columb написал(а):
Цитата (neadekvat @ 1.04.2011 - 03:09)
Просто добавляйте к ссылке .html, а при разборе адреса имейте в виду, что надо лишний .html отсечь.

Вот подправил
в файле variables.php добавил 1 строку и кое что изменил в другой (выделил)

/**
* Initialization of variables GET-parametres
* Инициализация переменных GET-параметров
*/
if(PRO_REWRITE == 'on' && !empty($_GET['route']))
{
$get = strtok($_GET['route'], '.');
$get = explode('/', trim($get, '/'));
$i = 0;

foreach($GET as $var => $val)
{
if(!empty($get[$i]))
$GET[$var] = $get[$i];
++$i;
}
}
elseif(count($_GET))
{
foreach($GET as $var => $val)
if(!empty($_GET[$var]))
$GET[$var] = $_GET[$var];
}


И в файле default.php

/**
* Функция формирования GET-параметров
*/
function href()
{
global $GET;
$tmp = $GET;
$href = '';

$arg = func_get_args();

if(is_array($arg[0]))
$arg = $arg[0];

if(defined('PRO_ADMIN'))
$host = PRO_HOST .'myadminpanel/';
else
$host = PRO_HOST;

if($arg[0] == 'host')
return PRO_HOST . $href;

foreach($arg as $var)
{
$param = explode('=', $var);

if(array_key_exists($param[0], $tmp))
$tmp[$param[0]] = $param[1];
else
die('The variable <b>'. $param[0] .'</b> is not defined');
}

$cnt = array_flip(array_keys($tmp));
$tmp = array_slice($tmp, 0, $cnt[$param[0]] + 1);

foreach($tmp as $var => $val)
if(PRO_REWRITE == 'on')
$href .= '/'. $val;
elseif(!empty($val))
$href .= '&'. $var .'='. $val;

if(PRO_REWRITE == 'on')
return $host . trim($href, '/') . '.html';
else
return $host .'?'. trim($href, '&');
}

Может кому то пригодится. Расширение .html можно заменить на любое другое. smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.