Я хочу создать плоские ссылки для своего сайта. .htaccess, код выглядит следующим образом:mod_rewrite apache для пользовательских плоских ссылок застревает
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9A-Za-z]+)?$ /index.php?page=$1 [L]
RewriteRule ^([0-9A-Za-z]+)/?$ /index.php?page=$1 [L]
</IfModule>`
Теперь мой сайт работы, которые можно увидеть через print_r($_GET)
и получать все значения.
У меня есть такой код: <img src="images/icons/image.png" />
, где изображение находится по пути: /images/icons/up.png
.
Теперь я могу посетить мой сайт как: http://somedomain.com/home
и все работает нормально. Но когда я положил: http://somedomain.com/home/
, он застревает.
Изображение получило такой путь для браузера: http://somedomain.com/home/images/icons/image.png
который не доступен, и он должен быть: http://somedomain.com/images/icons/image.png
.
Как это решить?
Было бы полезно, если бы было какое-либо решение, изменив .htaccess, поскольку я хочу использовать относительные пути для всех ссылок, а не полный путь.
Благодаря Бен Клиффорду за вашу помощь. По его словам, если я переадресую второе правило в формат, похожий на первый, а не на index.php. Тогда это должно сработать.
Значит, людям есть идея, как это сделать? Я не могу это решить. Пожалуйста, помогите парням!
Включите метатаг базового url в голову. Посмотрите, исправляет ли это проблему. – OptimusCrime