Мне было интересно, как я могу создавать чистые URL-адреса с помощью PHP. Я делаю все это на PHP или мне нужно каким-то образом использовать mod_rewrite? Может ли кто-нибудь объяснить это мне в условиях мирской жизни?
Вот мой текущий url ссылка на элемент и как он выглядит в браузере
http://www.example.com/members/1/posts/page.php?aid=123
Но я хочу, чтобы он прочитал название страницы.
http://www.example.com/members/1/posts/title-of-current-page/
Сначала вам нужно создать «title-of-current-page» из PHP, используя эту функцию, например:
function google($string){ $string = strtolower($string); $string = preg_replace('/[^a-zA-Z0-9]/i','-',$string); $string = preg_replace("/(-){2,}/",'$1',$string); return $string; }
Во-вторых, вам нужно сделать переписку, но вы должны сохранить помощь в форме «/ 123-title-of-current-page»,
Переписать будет что-то вроде этого (я игнорирую весь URL)
RewriteRule ^([0-9]+)-(.*?)$ page.php?aid=$1 [L,QSA]
Вы можете сделать это, используя mod_rewrite:
Вам нужно будет отредактировать файл с именем .htaccess на верхнем уровне вашей веб-папки. Здесь вы можете указать определенные параметры, чтобы контролировать способ доступа Apache к элементам в этой папке и ниже.
Прежде всего. Включим mod_rewrite: RewriteEngine On
RewriteRule ^([az]+)/([az\-]+)$ /$1/$2.php [L]
Правило соответствует любому URL-адресу, который формируется из строчных букв, за которым следуют символы /, затем более строчные буквы и / или дефисы, и добавляет .php в конец. Он отслеживает что-либо, заключенное в скобки () и ссылается на них позже как на $ 1 и $ 2, то есть на первое и второе совпадения. Поэтому, если кто-то посещает эти URL-адреса:
http://example.com/weblog/archive
он будет преобразован в следующее:
http://example.com/weblog/archive.php
Вы найдете более подробную информацию о:
Вы должны использовать переписывание для направления всех запросов в существующий php-файл, иначе вы получите все 404 not found
ошибок, потому что вы пытаетесь получить страницу, которой просто нет.
Если вы не перепишете свою страницу 404
чтобы обрабатывать все запросы, и вы определенно не хотите туда …