#.htaccess #url #rewrite
#.htaccess #url #переписать
Вопрос:
Попробовал несколько предложений с этого сайта, поиска в Google и других источников, но безрезультатно.
Я хотел бы иметь правило перезаписи, которое принимает URL-адрес, подобный этому:
http://somesite.com/abc123
и изменяет его на это:
http://somesite.com/abc/123
abc123 — это динамический набор, но он всегда будет состоять из (буквенных) (числовых) — b256, d1, c3456 и т.д.
Есть ли какой-либо способ сделать это с помощью .htaccess? Все, что я пытаюсь, просто не работает.
Ответ №1:
Это можно сделать.. довольно легко, на самом деле предполагая, что вы всегда будете разделяться на буквы и числа …. ваш .htaccess скажет:
Rewrite on
RewriteRule ^([A-z] )([0-9] )(.*) $1/$2$3 [QSA,L]
Обратите внимание, что QSA добавляет любые строки запроса, а L останавливает здесь правило. Остальное для хорошей оценки … на случай, если есть что-то вроде /abc123.html тогда это стало бы /abc/123.html
Ответ №2:
Некоторое время назад у меня были проблемы с этим. .htaccess не нужно его создавать, ему просто нужно его обработать. Я надеюсь, что я прав с этим 🙂
Это обработает его в .htaccess
Rewrite on
RewriteRule ^([^/]*)([^/]*)$ index.php?varone=$1amp;vartwo=$2 [L]
Но вам нужно будет связать его на своей странице таким образом
http://somesite.com/abc/123
Затем вы можете запросить переменные с помощью php
$varone = htmlspecialchars($_REQUEST["varone"]);
$varone = preg_replace("/[^A-z]/","", $varone);
$vartwo = htmlspecialchars($_REQUEST["vartwo"]);
$vartwo = preg_replace("/[^0-9]/","", $vartwo);