#php #apache #.htaccess #mod-rewrite #apache2.2
#php #apache #.htaccess #mod-перезапись #apache2.2
Вопрос:
Я искал довольно долго, но не смог найти точно такую же проблему, как и у меня.
Я надеюсь, что кто-нибудь здесь сможет мне помочь, так как сейчас я очень расстраиваюсь из-за этого.
Я запускаю Apache 2.2 с mod_rewrite вместе с PHP-проектом, над которым я работаю.
Я успешно включил mod_rewrite для Apache, и я использую приведенный ниже .htaccess:
RewriteEngine On
RewriteBase /minpt.net/htdocs
RewriteRule ^([a-zA-Z0-9] )$ ./?page=$1 [L]
RewriteRule ^([a-zA-Z0-9] )/$ ./?page=$1 [L]
У меня есть ссылка, подобная:
http://localhost/myproject/?page=news
Я хочу иметь возможность получить доступ к этой ссылке, используя красивый URL, например:
http://localhost/myproject/news
Или…
http://localhost/myproject/news/
(Обратите внимание на конечный след).
Используя мой текущий файл .htaccess (см. Выше), ссылка № 1 без завершения трассировки работает так, как я хочу. Но как только я пытаюсь получить доступ к URL-адресу, используя конечный след, я попадаю в неправильный относительный каталог, и мои CSS, изображения и т. Д. Все портятся, потому что он думает, что я нахожусь в другом рабочем каталоге.
Как я могу предотвратить это?
Ответ №1:
Вы можете исправить это, используя абсолютные ссылки на вашем веб-сайте вместо относительных ссылок.
Альтернативно, добавьте следующий тег к тегу head:
<base href="//example.com/myproject/">
Этот URL-адрес будет использоваться в качестве основы для любого относительного URL-адреса на вашем веб-сайте. Это перезаписывает текущий URL-адрес, который вы просматриваете. См. mdn для получения дополнительной информации об этом теге.