Переписывание URL в php от htaccess - PullRequest
0 голосов
/ 28 октября 2011

Помогите преобразовать динамический URL в статический URL с помощью htaccess в php.

Пример 1:

www.example.com/say.php?name=ksrtc-palakkad-kerala&id=c669239 (динамический URL)

www.example.com/say/ksrtc-palakkad-kerala-c669239.html (статическийURL)


Пример 2:

www.example.com/index.php?name=ksrtc-palakkad-kerala&id=c669239 (динамический URL)

www.example.com/say/ksrtc-palakkad-kerala-c669239.html (статический URL)

С уважением, Прабхат

1 Ответ

3 голосов
/ 28 октября 2011

Вы должны создать .htaccess, который выглядит примерно так:

RewriteEngine on

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule . index.php [L]

Теперь полный путь будет перенаправлен на index.php - это будет ваша единственная точка входа, вы можете получить к ней доступ через $_SERVER['REQUEST_URI'], если я хорошо помню.

Теперь ваша задача - написать набор правил, чтобы узнать все возможные маршруты, которым соответствует этот URL (регулярные выражения), затем проанализировать URL-адрес и установить переменные GET соответствующим образом (из вашего второго примера - name, id). Если URL-адрес не соответствует ни одному из известных URL-адресов - перешлите его на страницу с ошибкой.

А также вам следует выполнить обратную маршрутизацию, если кто-то открывает URL с обычными переменными get, такими как «index.php? Name = ksrtc-palakkad-kerala & id = c669239», вы должны перенаправить с помощью 301 PERMANENT REDIRECT на URL «SEO» «/say/ksrtc-palakkad-kerala-c669239.html"

Если это не отвечает на ваш вопрос, уточните.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...