Нет изображений на веб-странице при использовании rewriterule

#.htaccess

#.htaccess

Вопрос:

У меня есть файл .htaccess, подобный этому:

 RewriteRule ^(iphone)/(.*).html$ /$2.php?specialversion=$1 [L,QSA]
  

Моя проблема в том, что при просмотре http://www.example.com/iphone/mypage2.html , mypage2.php вызывается и выводится содержимое, но ни одно из изображений или даже CSS не работает. Как я могу это решить?

Комментарии:

1. Что происходит при вызове URL изображения?

2. @Pekka. Вы получили это! Я должен был попробовать это раньше. Я понимаю, что адреса были относительно HTML-документа (который подделан как находящийся в папке iphone). Я получил настроенное сообщение об ошибке 404. @all СПАСИБО ВАМ ВСЕМ!

Ответ №1:

Вы могли бы использовать новый тег HEAD в вашем HTML в mypage2.php (и на других страницах), когда установлен параметр GET specialversion . В противном случае изображения будут извлечены из http://www.example.com/iphone/images /… или аналогичный, который не перенаправляется):

 <base href="http://www.example.com/">
  

Конечно, вы могли бы использовать другое RewriteRule вместо .htaccess.

 RewriteRule ^(iphone/(?:images|style))/(.*)$ /$2.php?specialversion=$1 [L,QSA]
  

Этот RewriteRule перезаписывает images и style каталоги. Помните, что кэш не будет использоваться, если клиент использует как основной сайт, так и iphone сайт (что, вероятно, не является проблемой).