Я использую 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, это тоже не хорошо.
Любые другие решения?
Спасибо, вы очень много.
Думаю, что сделал! Я добавил базовый тег ко всем моим htmls, выполнив индекс, и он сработал. Спасибо! – DanielFox