Вложенные URL и правила перезаписи в Apache2 - PullRequest
0 голосов
/ 16 сентября 2009

Мне нужна помощь с правилами перезаписи и вложенными URL-адресами.

Я использую TikiWiki для своего веб-сайта и в настоящее время настраиваю дружественные для SE URL-адреса для своих проектов. В частности, у меня есть следующее правило перезаписи для www.example.com/projects, указывающее на страницу со списком всех проектов, размещенных в пример .

RewriteRule ^Projects$  articles?type=Project  [L]

Это отлично работает.

Теперь я хотел бы указать www.example.com/projects/project1, чтобы указать конкретный проект. У меня есть это правило перезаписи

RewriteRule ^(Projects/Project1)$     tiki-read_article.php?articleId=6

Это работает, но частично. Все содержимое отображается в виде текста, но тема - images / css и т. Д. - все бросается - страница полностью текстовая.

Я понимаю, что это происходит потому, что относительные пути в теме / css / images ссылаются на Проекты как на базовую папку, а не на корень сайта.

Я не хочу трогать часть CMS - измените пути theme / css / image в файлах, больше из-за возможности обновления.

Может ли кто-нибудь помочь мне понять и написать правило, чтобы вышеуказанный вложенный URL работал?

С уважением, Радха

Ответы [ 2 ]

0 голосов
/ 16 сентября 2009

Относительные URL-адреса преобразуются в абсолютные URL-адреса на основе базового URL-адреса, являющегося URL-адресом текущего документа. Таким образом, в вашем случае базовый URL-адрес /projects/project1, а не /projects, хотя ваши файлы фактически находятся там. Потому что клиент использует только URL-адреса и не имеет представления о действительной файловой системе. URL текущего документа: /projects/project1.

Поэтому используйте ссылки URL с абсолютным путем URL (/projects/css/…) вместо относительных.

0 голосов
/ 16 сентября 2009

Вам нужно либо изменить CMS, либо написать правила перезаписи для вашей темы / CSS / файлов изображений. Например, если ваши изображения находятся в каталоге /images/ на сайте, попробуйте

RewriteRule ^Projects/(themes/.*)$ \1

или, может быть, лучше

Alias /Projects/themes /themes

Но все же, я бы отредактировал конфигурацию CMS, если бы это был я.

...