Мой сайт фильтрует все через скрипт index.php, и при чтении документов для mod_rewrite это кажется чертовски легким, но я немного застрял. Я подумал, что заодно начну страницу, чтобы посмотреть, смогу ли я заставить ее работать, и застрял довольно быстро.
У меня есть профили пользователей, длинная форма которых в основном:
http://www.mysite.com/index.php?content=profile&id=2172
Итак, я добавил одно правило перезаписи в мой файл .htaccess, который находится в корневой папке:
RewriteRule ^profile/([0-9]+)$ index.php?content=profile&id=$1
Идея теперь в том, чтобы иметь возможность ввести mysite.com/profile/2172
Редирект действительно отображает правильную страницу, но происходит то, что каждый CSS-файл, изображение и т. Д. Получает / profile / добавляется посередине, что, конечно, не там, где находятся изображения и CSS-файлы. Я использую относительные пути в коде, поэтому пример изображения в коде может быть: images/userimage.jpg
Что происходит, так это то, что указанная выше относительная ссылка превращается в:
mysite.com/profile/images/username.jpg
Для меня это не имеет смысла, поскольку путь к изображению не соответствует шаблону перезаписи (/profile/*
), так почему же фиктивный путь добавляет /profile/
ко всем моим внутренним ссылкам?
Я пытался добавить RewriteCond %{SCRIPT_FILENAME} !-f
в htaccess непосредственно перед перезаписью, чтобы посмотреть, что произошло, без изменений.
Извините, если это простой и основной вопрос, но может ли кто-нибудь с реальным опытом переписывания модов дать мне несколько советов, чтобы я мог заставить этот простой случай работать и открыть страницу с соответствующими ссылками в моем коде на мой включенный css а файлы изображений? Я не использовал никаких флагов для Rewriterule, так как у меня есть только одна строка после включения двигателя (и там также есть строка followsymlink).