Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [inne] htaccess, zmiana tytułu podstrony?
partyboyu
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 13.12.2009

Ostrzeżenie: (0%)
-----


Czy jest możliwość "nałożenia" tytułu dla jednej podstrony przy użyciu htaccess?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
jaslanin
post
Post #2





Grupa: Zarejestrowani
Postów: 511
Pomógł: 143
Dołączył: 13.03.2010
Skąd: Jasło

Ostrzeżenie: (0%)
-----


Przez sam plik htaccess tego nie zrobisz, możesz za to użyć htaccess by przekazał do skryptu dane i na tej podstawie skrypt zmieni tytuł, bądź użyć do kierowania na inny URL gdzie masz porządaną stronę i tytuł.

Inną opcją jest stworzenie skryptu który będzie pobierał stronę (np. przez CURL) którą chcesz, za pomocą preg_replace zmieniał tytuł, wyświetlał zmienioną stronę, a htaccess będzie tylko kierował/maskował użycie tego pliku. Ale uwaga nie jest to zbyt wydajne i raczej nie jest to zbyt dobrą praktyką programistyczną. By bardziej to zoptymalizować, można by dorzucić cache'owanie strony, by nie musieć co chwila wykonywać dość kosztownej operacji zmiany tytułu i pobierania strony.

Ten post edytował jaslanin 31.03.2012, 20:01:26
Go to the top of the page
+Quote Post
partyboyu
post
Post #3





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 13.12.2009

Ostrzeżenie: (0%)
-----


to może troche opisze mój problem, zrobilem proste przekierowanie z index.php na search.php (skrypt CMS)
Kod
RewriteRule ^index.php$ search.php [L]

problem polega na tym (oprócz tego że nie jestem orłem) że jest to system naczyń połączonych, w pliku main.template.php jest taki kod:
Kod
<title>{[var:(strlen($page_title) ? $page_title .' - '. $settings['sitename'] : $settings['sitename'])]}</title>

tego kodu nie moge ruszyć ponieważ zalezy mi tylko na zmianie tytułu dla search.php

natomiast cały search.php wygląda tak:
Kod
<?php
session_start();

define('PAGE', 'site');

require ('includes/config.php');

require ('templates/'. $session->info['template'] .'/browse.template.php');

require ('languages/'. $session->info['language'] .'/browse.lang.php');

// get search page number
$page = (int) $_GET['p'];
if (empty($page))
    $page = 1;

$search_term = nohtml(escape_string($_REQUEST['t'])); // get search term

// log search... for tag cloud.
if ($settings['tag_cloud'] == 1 && $_SESSION['search_term'] != $search_term && strlen($search_term) > 0 && strlen($search_term) <= 20) {
    mysql_query("INSERT INTO ". $tbl_prefix ."search (search_term, search_date) VALUES ('". (function_exists('mb_strtolower') ? mb_strtolower($search_term,'UTF-8') : strtolower($search_term)) ."', ". $u_time .")");
    $_SESSION['search_term'] = $search_term;
}

// build search SQL
$search_sql = '';
if (isset($_REQUEST['c']) && is_numeric($_REQUEST['c']))
    $search_sql .= "category = ". (int) $_REQUEST['c'] ." && ";
$search_sql .= "status = '1' && (title LIKE '%". $search_term ."%' || description LIKE '%". $search_term ."%' || keywords LIKE '%". $search_term ."%')";

$number_results = count_rows($tbl_prefix .'files', $search_sql); // count the number of results

$start_here = ($page - 1) * $settings['browse_per_page'];
$pages_count = ceil($number_results / $settings['browse_per_page']);

// Build navigation menu
$txt['nav'] = '';
if ($pages_count > 1) {
    $search_url = $settings['siteurl'] .'/search.php?t='. stripslashes($search_term);
    if (isset($_REQUEST['c']) && is_numeric($_REQUEST['c']))
        $search_url .= '&amp;c='. $_REQUEST['c'];
    
    if ($page > 1)
        $txt['nav'] .= '<a href="'. $search_url .'&amp;p=1">&lt;&lt;</a> <a href="'. $search_url .'&amp;p='. ($page - 1) .'">&lt;</a>';
    for ($page_number = 1; $page_number <= $pages_count; $page_number++) {
        if ($page_number == $page)
            $txt['nav'] .= ' <b>'. $page_number .'</b>';
        else {
            if ($page_number >= $page - 5 && $page_number <= $page + 5)
                $txt['nav'] .= ' <a href="'. $search_url .'&amp;p='. $page_number .'">'. $page_number .'</a>';
            else {
                if ($page_number > $page && $dots_after != true) {
                    $txt['nav'] .= ' ...';
                    $dots_after = true;
                } elseif ($page_number < $page && $dots_before != true) {
                    $txt['nav'] .= ' ...';
                    $dots_before = true;
                }
            }
        }
    }
    if ($page < $pages_count)
        $txt['nav'] .= ' <a href="'. $search_url .'&amp;p='. ($page + 1) .'">&gt;</a> <a href="'. $search_url .'&amp;p='. $pages_count .'">&gt;&gt;</a>';
}

// Get files
$files_query = mysql_query("SELECT fileid, title, description, icon, iconlocation, timesplayed, scores FROM ". $tbl_prefix ."files WHERE ". $search_sql ." ORDER BY dateadded DESC, fileid  DESC LIMIT ". $start_here .", ". $settings['browse_per_page']);

$files = array();
while ($files_row = mysql_fetch_assoc($files_query))
    $files[] = array (
        'id'            =>    $files_row['fileid'],
        'title'            =>    $files_row['title'],
        'url'            =>    fileurl($files_row['fileid'],$files_row['title']),
        'description'    =>    shorten_description($files_row['description'], 80),
        'image'            =>    file_image_url($files_row['icon'], $files_row['iconlocation']),
        'played'        =>    number_format($files_row['timesplayed']),
        'scores'        =>    $files_row['scores']
    );

// small replacement
$lang['results_found'] = str_replace('{$results}', $number_results, $lang['results_found']);
$txt['search_term'] = stripslashes($search_term);

$page_title = $lang['search'];
load_template('search', 1);

?>

będe bardzo wdzięczny jeśli ktoś przybliży mi istote problemu (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
jaslanin
post
Post #4





Grupa: Zarejestrowani
Postów: 511
Pomógł: 143
Dołączył: 13.03.2010
Skąd: Jasło

Ostrzeżenie: (0%)
-----


1. używasz jakiegoś systemu szablonów którego nie znam, więc nie wiem jak się należy nim posługiwać

2. ja bym próbował w tym pliku search.php ustawić:

  1. $page_title = '';
  2. $settings['sitename'] = 'tytul ktory chcesz';


zamiast:

  1. $page_title = $lang['search'];
Go to the top of the page
+Quote Post
partyboyu
post
Post #5





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 13.12.2009

Ostrzeżenie: (0%)
-----


dzięki za pomoc (IMG:style_emoticons/default/smile.gif)
zamiast tego
  1. $page_title = $lang['search'];

wstawiłem tylko to
  1. $page_title = '';

teraz głowna wyswietla sie tak jak powinna jak i podstrony
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 01:14