Как создать оптимизированный для SEO URL-адрес, чтобы включить переменную / фрагмент кода PHP? - PullRequest
0 голосов
/ 24 апреля 2011

У меня есть следующий код PHP, который представляет собой имя файла, которое я использую в качестве заголовка своих страниц для каждой загрузки, которую я предоставляю зрителям. Я хочу иметь SEO-ориентированные заголовки и URL-адреса.

<?php echo $file_info[21]; ?>

URL каждой страницы выглядят примерно так:

http://site.com/directory/download_interim_finder.php?it=ZWtkaW1rcmInbn1ma3h9aXFLcHN6fWVzeDgnISJoO3tran0reW97cSd1YHR5YHZIbWBmfzxwY3tiOnxycnA8Y25zfWpna3Y+YXtlZnl7dnJLf3J8cWd2fT4kJCIramFbcm1tbWRqdHJmJnR2ZGhKd3JpdShQdGV+bX09fWh0b2JnfXx9anV2J3F7YHh4d3Z2S3Jyf3ZmdX8pNyg1anZ/bnhpdGJwVnx5cXF5Zn5bYW14cHp2bTQiKXFsYw==

Я хотел бы преобразовать этот длинный URL во что-то более дружественное к SEO, и оно будет включать указанный выше php-код в нечто вроде "filename.php" вместо длинного URL, который вы видите здесь.

Я надеялся использовать .htaccess, но я читал, что вы не можете сделать это там. Я часами искал способы исправить это и не могу найти решение. Любая помощь будет оценена.

Спасибо!

Ответы [ 2 ]

1 голос
/ 25 апреля 2011

Пошаговая инструкция о создании оптимизированного для SEO URL-адреса с динамическим контентом с использованием PHP и перенаправления мода .htaccess.Дружественные URL-адреса улучшают рейтинг вашего сайта в поисковых системах.Прежде чем пытаться это сделать, вы должны включить модуль mod_rewrite.so по адресу httpd.conf.Это всего лишь несколько строк PHP-кода, преобразующего данные заголовка в чистый формат URL.

База данных

Пример идентификатора столбцов таблицы блога в базе данных, заголовок, текст и URL.

CREATE TABLE `blog`
(
`id` INT PRIMARY KEY AUTO_INCREMENT,
`title` TEXT UNIQUE,
`body` TEXT,
`url` TEXT UNIQUE,
);

Publish.php

Содержит код PHP.Преобразование текста заголовка в понятный формат URL и сохранение в таблице блога.

<?php
include('db.php');
function string_limit_words($string, $word_limit)
{
  $words = explode(' ', $string);
  return implode(' ', array_slice($words, 0, $word_limit));
}

if($_SERVER["REQUEST_METHOD"] == "POST")
{
  $title = mysql_real_escape_string($_POST['title']);
  $body = mysql_real_escape_string($_POST['body']);
  $title = htmlentities($title);
  $body = htmlentities($body);
  $date = date("Y/m/d");

  //Title to friendly URL conversion
  $newtitle = string_limit_words($title, 6); // First 6 words
  $urltitle = preg_replace('/[^a-z0-9]/i', ' ', $newtitle);
  $newurltitle = str_replace(" ", "-", $newtitle);
  $url = $date . '/' . $newurltitle . '.html'; // Final URL

  //Inserting values into my_blog table
  mysql_query("insert into blog(title,body,url) values('$title','$body','$url')");
}

?>
<!--HTML Part-->
<form method="post" action="">
  Title:
  <input type="text" name="title"/>
  Body:
  <textarea name="body"></textarea>
  <input type="submit" value=" Publish "/>
</form>

Article.php

Содержит код HTML и PHP.Отображение содержимого из таблицы блога.

<?php
include('db.php');
if($_GET['url'])
{
  $url  =mysql_real_escape_string($_GET['url']);
  $url = $url . '.html'; //Friendly URL
  $sql = mysql_query("select title,body from blog where url='$url'");
  $count = mysql_num_rows($sql);
  $row = mysql_fetch_array($sql);
  $title = $row['title'];
  $body = $row['body'];
}
else
{
 echo '404 Page.';
}
?>
<!-- HTML Part -->
<body>
  <?php
  if($count)
  {
    echo "<h1>$title</h1><div class='body'>$body</div>";
  }
  else
  {
    echo "<h1>404 Page.</h1>";
  }
  ?>
</body>

.htaccess

Файл перезаписи URL.Перенаправление исходного URL-адреса 9lessons.info/article.php?url=test.html на 9lessons.info/test.html

RewriteEngine On

RewriteRule ^([a-zA-Z0-9-/]+).html$ article.php?url=$1
RewriteRule ^([a-zA-Z0-9-/]+).html/$ article.php?url=$1
0 голосов
/ 24 апреля 2011

Когда я смотрю на пример URL, который вы опубликовали, я вижу две вещи:

  • Он указывает на скрипт PHP: /directory/download_interim_finder.php
  • Он имеет вид (выглядиткак a) аргумент в кодировке Base64, который, очевидно, никто не может прочитать

Я предполагаю, что ваш ввод для сценария загрузки закодирован в строке it-аргумент, вам нужно будет указать это в URL, иначе выне могу определить, какой файл вы хотите скачать.Поскольку вы хотите, чтобы ваши URL были семантическими, вы должны добавить свою семантическую информацию в URL.

Например, вы можете создать URL-адреса, такие как:

/download/documentation/productX/[[Base64encodedinputstring]]

В вашем .htaccess вам потребуетсяправило:

RewriteEngine On
RewriteRule /download/.*/([^\/]+) /directory/download_interim_finder.php?it=$2

Если ваш хост не разрешает вам использовать .htaccess, вы не можете легко применять семантические URL.

...