Я пытаюсь изменить URL-адрес, который отображается в адресной строке. Код в .htaccess:
RewriteEngine On # Turn on the rewriting engine RewriteRule ^Home?$ index.php [NC,L] RewriteRule ^about-us?$ aboutus.php [NC,L] RewriteRule ^contact?$ contact.php [NC,L] RewriteRule ^products?$ products.php [NC,L] RewriteRule ^products/led-bulb?$ led-bulb.php [NC,L]
Объясните: вся страница в том же каталоге и 4 правила первого переписывания одобрены, но последнее правило перезаписи имеет проблему. (Каталог продуктов / led-bulb не существует). Проблема: последнее правило при загрузке [led-bulb.php] не загружает ни одного стиля и показывает страницу без какого-либо стиля и дизайна.
Ваше последнее правило также отлично работает, но вы сталкиваетесь с проблемой отображения стиля / изображения из-за использования относительных путей.
Вы можете добавить это чуть ниже <head>
раздела HTML вашей страницы:
<base href="/" />
так что каждый относительный URL-адрес будет удален с этого базового URL-адреса, а не с URL-адреса текущей страницы.
Кроме того, ваши правила должны делать необязательную дополнительную привязку:
RewriteEngine On RewriteRule ^Home/?$ index.php [NC,L] RewriteRule ^about-us/?$ aboutus.php [NC,L] RewriteRule ^contact/?$ contact.php [NC,L] RewriteRule ^products/?$ products.php [NC,L] RewriteRule ^products/led-bulb/?$ led-bulb.php [NC,L]