2012-04-03 8 views
0

У меня есть сайт, который генерирует динамические URL для всего контента.Динамические URL + SEO

Он использует функцию для отображения содержимого на странице index.php и называется «действием».

Таким образом, если пользователь хочет Signup, есть регистрацию функция вызова его. Если пользователь хочет просмотреть загрузок страница, есть загрузок функция, вызывающая ее.

Что-то вроде этого:

index.php?action=signup 
index.php?action=downloads 
index.php?action=news&type=type&id=id 

В последнем случае являются новости. Новости делятся на тип и ID, оба числа.

Тип может быть: статья, обновление и т.д.

Мой вопрос: как и что я должен сделать для того, чтобы превратить все это в дружественных URL-адресов?

ответ

1

Предполагая, что вы находитесь на сервере apache, вы захотите использовать файл .htaccess и метод использования правил для перезаписи URL-адресов, что не удивительно называется RewriteRule.

Там в тонну информации через Google, если вы ищете .htaccess RewriteRule, но отличная отправная точка http://corz.org/serv/tricks/htaccess2.php.

Вы по существу в конечном итоге, поместив файл с именем .htaccess в папке общедоступном веб-файлы, с чем-то вроде этого:

Options +FollowSymlinks 
RewriteEngine on 
RewriteRule ^(?:/(.*)){1,3} index.php?action=$1&type=$2&id=$3 [R,NC] 

Примечание: Я не тестировал выше, и она будет отличаться в зависимости о том, как вы хотите, чтобы ваша красивая ссылка выглядела.

+0

Ну ... спасибо за ваш ответ, но это не совсем то, что мне нужно. С некоторыми правилами перезаписи я могу сделать «/ register» доступным, но этого недостаточно, так как мне нужно будет вручную обновлять ссылки. Возможно, вы можете помочь мне узнать, что мне действительно нужно. ПРОБЛЕМА Текущий URL: url.com/index.php?action=signup Желаемая URL: url.com/register Как сделать свой веб-сайт ШОУ «/ регистр» в качестве ссылки, а не только в качестве возможного пути? Я имею в виду, когда мой сайт генерирует динамическую ссылку, он не учитывает правила SEO. Как сделать это уважением SEO? Как заставить его генерировать «/ register» вместо «/index.php?action=signup»? – Darkeden

+0

Думаю, что да, но вам нужно добавить дополнительные функции, например 301 переадресацию. Вся информация, которая вам нужна, находится на странице, которую я разместил, но в конце ваших правил это будет выглядеть как: [R, 301], поэтому она доступна только из этого места, чтобы избежать дублирования. – LeonardChallis

+0

Спасибо. Теперь я мог понять, что мне нужно, поэтому теперь мне просто нужно реализовать. Помогите мне написать два правила перезаписи: Первый - url.com/index.php?action=signup (** url.com/register **) Second - url.com/index.php?action=news&id= $ id & title = $ title (** url.com/news/$ id/title-of-the-notice-with-hifens **) Hifens будет исходить из функции PHP или правила перезаписи? Как исправить проблему CSS после размещения этих dirs? Каким будет каждое правило? – Darkeden