2009-09-16 3 views
0

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

Я использую TikiWiki для своего сайта и нахожусь в процессе создания дружественных URL-адресов SE для своих проектов. В частности, у меня есть следующее правило перезаписи для 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 - измените тему/css/пути изображения в файлах, больше из соображений возможности обновления.

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

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

ответ

0

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

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

или, возможно, лучше

Alias /Projects/themes /themes 

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

0

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

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