переписать карту для SEO и красивые URL - PullRequest
2 голосов
/ 04 мая 2011

Я пытаюсь перенаправить и переписать некоторые динамические URL-адреса PHP на красивые и оптимизированные для SEO URL-адреса. Мне удалось сделать это успешно через .htaccess с помощью следующего кода:

RewriteCond %{QUERY_STRING} ^somevar=green&nodescription=([a-zA-Z0-9_-]*)$
RewriteRule (.*) /green\/%1\/? [L,R=301]

RewriteRule ^green/([^/]*)/$ /script.php?somevar=green&nodescription=$1&rewrite=on [L]

Это создает несколько симпатичный URL следующим образом:

 http://www.mysite.com/green/aA43-/

Как я уже сказал, это прекрасно работает. Помимо одной вещи. Параметр nodescription содержит неописательный случайный набор букв, цифр и других символов.

Я хотел бы переписать параметр nodecription на более описательный. Я понимаю, что я могу сделать это с помощью карты перезаписи через Apache. Однако у меня нет опыта в подобных действиях, и я не совсем уверен, с чего начать.

Обычно я бы просто изменил script.php, чтобы он содержал больше описательных параметров, но на этот раз я не контролирую сценарий; Я вытаскиваю его с другого сайта, используя cURL.

Кто-нибудь может привести пример, как это осуществить?

Спасибо!

Мэтт

Ответы [ 2 ]

1 голос
/ 13 мая 2011

Ну, чтобы ответить на мой собственный вопрос, для этого вам понадобится доступ к файлу httpd.conf на вашем сервере apache.Моя компания, предоставляющая общий хостинг, не разрешила доступ к этому файлу (я сомневаюсь, что любой позволит вам получить доступ к нему).

Поэтому я укусил пулю и купил VPS.Я опубликую шаги, которые я предпринял здесь, чтобы настроить карту перезаписи в надежде, что она поможет потерянной душе :) Хорошо, вот так ...

Мой VPS имеет WHM установлен, поэтому в WHM я пошел на:

Конфигурация сервера >> Конфигурация Apache >> Включить редактор

Pre Virtual Host Включить >> Все версии

Эта функция берет любой текст, который вы вставили, и включает его в файл httpd.conf, не беспокоясь о том, что он будет перезаписан приболее поздняя стадия.Если у вас нет WHM на вашем сервере, вы можете добавить текст прямо в ваш файл httpd.conf;убедитесь, что он находится снаружи и перед любыми виртуальными хостами.

ОК, поэтому я включил следующее объявление карты и правило перезаписи:

#Map to redirect (swaps key and value)
RewriteMap rwmap txt:/home/*/public_html/rdmap.txt

<Directory /home/*/public_html/test>

Options All -Indexes
RewriteEngine on

RewriteRule ^url/([^/]*)/$ /script.php?foo=${rwmap:$1|$1}&rewrite=on [L]

</Directory>

Фактическая карта представляет собой простой текстовый файл, содержащий ключ /пары значений - вам нужно поместить этот файл в каталог, объявленный в RewriteMap rwmap txt:/home/*/public_html/rdmap.txt.

и все.Apache теперь переписывает мои URL для меня, и теперь у меня есть несколько хороших и красивых SEO оптимизированных ссылок благодаря моей карте переписывания!Hoorah!

0 голосов
/ 04 мая 2011
RewriteEngine on
RewriteRule ^green/([^/]*)/(.*)$ /script.php?somevar=green&nodescription=$1&rewrite=on [L]

Эта перезапись позволит вам передать «произвольный текст», который не имеет ничего общего с перезаписью.Например:

http://www.mysite.com/green/aA43-/some-seo-boosting-title

Будет по-прежнему правильно перенаправлять в script.php;последняя часть будет просто игнорироваться при переписывании.

...