SEO дружественный URL к динамической арабской категории URL с использованием PHP - PullRequest
1 голос
/ 17 октября 2010

В настоящее время у меня есть URL-адрес, подобный этому

domain / index.php? Cat = مال_وأعمال

Я хочу настроить все так, чтобы наши сотрудники по маркетингу могли публиковать URL-адреса как

domain / مال_وأعمال

Я пробовал несколько решений, в том числе:

mod_rewrite - проблема с этим подходом заключается в том, что он становится огромным файлом .htaccess, так как нам нужно написать правило для каждогоКатегория.

RewriteMap - это было довольно близко, так как я мог запросить базу данных для создания файла карты для вывода.Однако с тех пор я узнал, что у нас нет доступа к httpd.conf.

index.php - я попытался запустить все через наш файл index.php, который работает, но не сохраняет URLв браузере, дружественном для целей SEO.

Я надеюсь, что у кого-то есть другая идея, которая может помочь, я очень ценю это.Если у вас есть ссылка на что-то в Интернете, это также помогло бы.

php .htaccess mod-rewrite seo-friendly

Ответы [ 3 ]

1 голос
/ 17 октября 2010

Вы можете использовать следующее правило для сопоставления каждого запроса, в котором путь URI содержит только один сегмент пути к index.php , исключая существующие файлы:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^[^/]+$ index.php?cat=$0 [L]

Обратите внимание, чтовы на самом деле должны запросить /مال_وأعمال, чтобы он был внутренне переписан в /index.php?cat=مال_وأعمال.

0 голосов
/ 17 октября 2010

Вы все еще можете использовать решение mod_rewrite.Трюк - это параметр [L], означающий остановку mod_rewriting после этой строки.Предположим, у вас есть три страницы «index.php», «about_us.php» и «contact_us.php», затем что-нибудь , в противном случае они набирают текст, который вы хотите перенаправить в категорию.Вы можете сделать что-то вроде следующего:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule index\.php index.php [L]
RewriteRule about_us(\.php)? about_us.php [L]
RewriteRule contact_us(\.php)? contact_us.php [L]
RewriteRule (.*) index.php?cat=$1
</IfModule>

Таким образом, если они перейдут на index.php (или просто index), они получат ваш файл index.php.Если они перейдут на about_us.php (или просто about_us), они получат ваш файл about_us.php.Но если они переходят на test (который не был указан в первых трех строках), они перенаправляются на index.php?cat=test

0 голосов
/ 17 октября 2010

Прежде всего вам необходимо создать поддомен «перехватить все», который будет отправлять все запросы на ваш виртуальный хост:

ServerAlias *.website.com

Затем вы можете либо:

  1. Проверить HTTPхост на уровне приложения и делайте все, что нужно (либо обслуживайте контент из виртуального субдомена, либо выполните перенаправление 301 на www.
  2. Используйте одно правило mod_rewrite, чтобы переписать URL, как вы изначально предложили.
...