.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 написал(а):
То есть если я правильно понял.
У тебя допустим ссылка звучит так:
а тебе надо чтобы было:
То в своём корневом .htaccess пропиши:
и все ссылки прописывай уже не
news.php а
news.html
У тебя допустим ссылка звучит так:
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 можно заменить на любое другое.
