2013-07-15 7 views
0

Я использую mod_rewrite в первый раз, чтобы создать сайт, похожий на facebook.Сайт Mod_rewrite, как facebook

Когда я набираю mywebsite.com/user.name, mod_rewrite перенаправляет меня на mywebsite.com/hotsite/index/php, и там я использую немного php для получения имени пользователя из URL-адреса и получения userId из Это.

Тогда у меня есть другие области, такие как mywebsite.com/user.name/diary, mywebsite.com/user.name/contact, и так далее ...

Это все хорошо работает с этим кодом в мой .htaccess:

Options +FollowSymlinks 
RewriteEngine on 
RewriteBase /mywebsite 

# ————————————————————————- 
# > URL REWRITING 
# ————————————————————————- 

RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule ^(.*)/diario$ hotsite/diary.php 
RewriteRule ^(.*)/recados$ hotsite/messages.php 
RewriteRule ^(.*)/fotos$ hotsite/photos.php 
RewriteRule ^(.*)/videos$ hotsite/videos.php 
RewriteRule ^(.*)/contato$ hotsite/contact.php 
RewriteRule ^([a-z0-9._\-]+)$ hotsite/index.php [L] 

проблема у меня есть с путем к внешним файлам (CSS, изображения, фоны ...). Поскольку мой браузер считает, что я нахожусь на сайте «website.com», мне пришлось добавить «hotsite /» ко всем путям. Это хорошо работает, когда я на главной странице пользователя, например «mywebsite.com/user.name». Однако, если я перейду к «mywebsite.com/user.name/diary», браузер считает, что я в другой папке, а затем мне нужно добавить «../hotsite», чтобы пути работали.

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

Любые другие решения?

Спасибо, вы очень много.

ответ

0

Вы, вероятно, следует использовать base тег доступный в HTML (поместить его между <head></head> тегами):

<base href="yoursiteroot" /> 

Другими словами, что-то вроде этого:

<base href="/mywebsite" /> 

Однако, это требует, чтобы ваши относительные ссылки настраиваются на основе указанного вами пути. :-)

+0

Думаю, что сделал! Я добавил базовый тег ко всем моим htmls, выполнив индекс, и он сработал. Спасибо! – DanielFox

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