2011-05-14 4 views
2

Я люблю путь SO дает ссылку на вопрос Как и этот вопрос есть ссылка http://stackoverflow.com/questions/6002203/seo-friendly-url где название вопрос seo-friendly-urlSEO Friendly URL

Я создаю блог, где я хочу дать ссылку на тот же SO SO, как это сделать в PHP?
Любое предложение приветствуется :)

Структура таблицы

  • ID
  • Название
  • Метки
  • Категория
  • UID

Added
Я использую PHP/APACHE и без рамки! Я не хочу использовать какой-либо блог, хочу создать свой собственный

+0

Пожалуйста, не ставьте ** ЗАКРЫТЬ ГОЛОСУ ** для развлечения, пожалуйста, запишите причину! – Sourav

+2

'mod_rewrite' - твой друг (при условии, что вы используете apache как веб-сервер) – zerkms

+2

Тот факт, что закрытое голосование предлагает перейти на webmasters.se, что не подходит, поскольку это кодирование, а не общий вопрос SEO. – ThiefMaster

ответ

5

Я не уверен, почему люди так умышленно тупые здесь ...

Что вы ищете, это mod_rewrite, модуль apache для перезаписи URL-адресов.

В файле .htaccess (возможно, потребуется сделать его) ставить:

<IfModule mod_rewrite.c> 
RewriteEngine on 

RewriteRule ^blog\/([0-9]+)\/.*$ /blog.php?post=$1 [L] 
</IfModule> 

Это означает, что когда вы идете в /blog/10/any-old-bit-of-text/ за кулисами она идентична, если вы посетили /blog.php?post=10.

бит ([0-9] +) называется регулярным выражением (или регулярным выражением) и соответствует любому числу. Значение .* означает что-либо. ^ привязывает к началу запроса и привязки $ до конца. косые черты (/) экранируются как \/.

+2

Я попробую и +1 за вашу помощь :) – Sourav

+0

Ваш RewriteRule работает с blog.php? Post = 15, но когда я просматриваю blog.php, он перенаправляет на root! как остановить это? – Sourav

+0

Не следует влиять на blog.php. Уверены ли вы, что у вас нет других переписаний? Вы можете добавить RewriteRule^blog \/$ /blog.php [L], если хотите, чтобы blog/перешел на blog.php. –

0

Прежде всего, вы не писали, какие рамки вы используете. Я описываю то, что вы хотите сделать в рамках Symfony

Первое решение

http://www.symfony-project.org/jobeet/1_4/Doctrine/en/05#chapter_05_route_customizations

  1. Изменить маршруты для маршрутизации двигателя понять «Nice URLs» действие
  2. Заменить регулятор, который отвечает за поиск нужной записи с вашей статьей

Вы можете улучшить решение на декларировать функцию sluging и использовать его непосредственно в маршрутах

Второе решение

Используйте любое блоггинг решение, которое уже поддерживает его - как писал ceejayoz

0

Вы можете использовать PHP и Apache вместе. В частности, тип файла Apache. This article explains how to use Forcetype.

Допустим, у вас есть URL, как это: http://www.example.com/article/seo-friendly-example

.htacess файл будет выглядеть следующим образом:

<Files article> 
    ForceType application/x-httpd-php 
</Files> 

РНР будет выглядеть примерно так:

<?php 
    list(,$slug) = explode("/", $_SERVER['REQUEST_URI']); 
?> 

значение $slug будет seo-friendly-example. Это будет ключом в вашей базе данных для этой статьи.

+0

Ваш URL-адрес не загружается :( – Sourav

+0

Я просто попробовал, и он работает для меня. Должно быть, это временная проблема. –