2014-02-16 4 views
0

Я использую mod_rewrite, прямо сейчас, и я использую этотmod_rewrite - абсолютный путь к папке

RewriteRule ^.+(css/.+)$ $1 [L] 
RewriteRule ^.+(js/.+)$ $1 [L] 
RewriteRule ^.+(img/.+)$ $1 [L] 
RewriteRule ^.+(fonts/.+)$ $1 [L] 
RewriteRule ^.+(swf/.+)$ $1 [L] 

Теперь я просто пишу CSS/cssfile.css и JS IMG и материал, и он работает (даже если я не думаю, что это правильный путь)

Но в любом случае у меня есть папка с именами функций с некоторым файлом PHP, и я попытался сделать то же самое с тем, что я сделал с этим. Но это не пошло на замечательный , причина, по которой я хочу это, я хочу сделать один файл с включенными, поэтому я избегаю, делая ненужным несколько строк кода.

Кто-нибудь знает, о чем они говорят, и, возможно, знает, что я должен делать?

Я извиняюсь за плохой explination (новый mod_rewrite) и я пытался искать с любым хорошим ответом ..

+0

Не могли бы вы объяснить, что вы имеете в виду «что не пошел слишком большой»? Какой код вы пытались, и что произошло? Я также не понимаю, что вы пытаетесь сделать, поскольку заявление 'include' в PHP не имеет абсолютно никакого отношения к' mod_rewrite'. – IMSoP

+0

С другой стороны, эти правила предназначены только для того, чтобы вы могли включать файлы CSS и т. Д. В HTML с помощью 'href =" css/cssfile.css ", но все же извлекать их из корневого каталога? Если да, почему бы просто не использовать 'href ="/css/cssfile.css "? Выполнение этого способа будет очень плохо для кеширования браузера, например, поскольку один и тот же файл CSS появится на разных URL-адресах при щелчке по сайту. – IMSoP

+1

С помощью этого кода мне нужно написать только css/file, и теперь я тоже хочу это для карты функций, прямо сейчас у меня есть этот код в моем PHP-документе: '../../../functions/connect_db.php 'Я действительно хочу, чтобы он работал следующим образом:' functions/connect_db.php' – Tommy

ответ

1

include заявления РНР не разрешить URL или задать Apache для какой-либо информации, так mod_rewrite будет никак не влияют на его поведение.

Что вы ищете, это способ определения местоположения ваших файлов относительно «корня документа» (каталог, который сопоставляется с example.com/), а не относительно текущего файла.

Для этого вы можете использовать переменную PHP $_SERVER['DOCUMENT_ROOT'], например.

include $_SERVER['DOCUMENT_ROOT'] . '/functions/connect_db.php'; 

Это также может быть идея, чтобы переместить функцию определений один каталог выше корневой документ, так что они никогда не могут быть загружены в качестве URL-адресов в их собственном праве. Функция dirname() дает «родительский» каталог определенного пути, так что вы можете использовать вместо этого:

include dirname($_SERVER['DOCUMENT_ROOT']) . '/functions/connect_db.php'; 
+0

Ах спасибо! Не знал этого! – Tommy

Смежные вопросы