Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Mod Rewrite сайте в папку

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: site.ru в dir, в итоге не site.ru/dir а site.ru/
alexpebody
Отправлено: 05 Августа, 2016 - 04:42:03
Post Id


Новичок


Покинул форум
Сообщений всего: 53
Дата рег-ции: Апр. 2013  


Помог: 0 раз(а)




Всем доброго времени.

Сломал голову, пожалуйста помогите с задачей... Бьюсь уже около года, все время сдаваясь и не находя все же решение, оставляю вид site.ru/dir

Четкая задача: есть сайт site.ru, но на хосте (хост свой, рулить могу как хочу), на хосте корневой .htaccess и много папок с сайтами (dir1, dir2, ...)
Если делать стандартное перенаправление, вид URL в строке адреса получается site.ru/папка/, а мне нужно чтобы вид URL остался site.ru/

Получилось сделать только на одном из папок сайта, на субдомене, делаю так:

CODE (htmlphp):
скопировать код в буфер обмена
  1. RewriteCond %{REQUEST_URI} !^/dir1
  2. RewriteCond %{HTTP_HOST} ^sub.site.com$ [NC]
  3. RewriteRule ^(.*)$ /dir1/$1 [L,QSA]

===> Результат правила выше, вот такой: при запросе sub.site.com получаем sub.site.com и все ресурсы сайта из папки dir1

CODE (htmlphp):
скопировать код в буфер обмена
  1. RewriteCond %{REQUEST_URI} !\/site
  2. RewriteCond %{HTTP_HOST} ^site.ru$ [NC]
  3. RewriteRule ^(.*)$ dir2/$2 [L]

===> Результат правила выше, вот такой: при запросе site.ru получаем site.ru, но ТОЛЬКО начальную страницу index.html, прочие ресурсы сайта из папки dir2 НЕ ГРУЗЯТСЯ!
Если делать RewriteRule ^(.*)$ dir2/$1 [L], сайт совсем не грузится, вечная загрузка, видимо зацикливание по /dir2/dir2/dir2/dir2/...


Прошу, пожалуйста помогите, кто точно знает, как сделать тоже самое но не для субдомена, а для сайта? Заранее БОЛЬШОЕ БОЛЬШОЕ СПАСИБО!!!

---

Как насчет такого, можно это как то использовать и как апач будет рулить по именам:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <VirtualHost *:80>
  3.     ServerName first.ru
  4.     ServerAlias [url]www.first.ru[/url]
  5.     DocumentRoot /var/www/vhosts/first.ru/httpdocs
  6.     ErrorLog logs/first.ru-error.log
  7. </VirtualHost>
  8.  
  9. <VirtualHost *:80>
  10.     ServerName second.ru
  11.     ServerAlias [url]www.second.ru[/url]
  12.     DocumentRoot /var/www/vhosts/second.ru/httpdocs
  13.     ErrorLog logs/second.ru-error.log
  14. </VirtualHost>
  15.  

(Отредактировано автором: 05 Августа, 2016 - 07:50:41)

 
 Top
Faraon-san
Отправлено: 05 Августа, 2016 - 11:37:35
Post Id



Посетитель


Покинул форум
Сообщений всего: 318
Дата рег-ции: Сент. 2013  


Помог: 8 раз(а)




вот так не работает?
CODE (htmlphp):
скопировать код в буфер обмена
  1. <VirtualHost *:80>
  2.     ServerName dir1.first.ru
  3.     ServerAlias [url]www.dir1.first.ru[/url]
  4.     DocumentRoot /var/www/vhosts/first.ru/httpdocs/dir1
  5.     ErrorLog logs/dir1.first.ru-error.log
  6. </VirtualHost>

зы: не разбираюсь в администрировании.
 
 Top
alexpebody
Отправлено: 05 Августа, 2016 - 13:33:57
Post Id


Новичок


Покинул форум
Сообщений всего: 53
Дата рег-ции: Апр. 2013  


Помог: 0 раз(а)




Faraon-san пишет:
зы: не разбираюсь в администрировании.

Спасибо за пример, я думаю что работать будет, вот только будет ли показывать верный адрес в строке URL?
 
 Top
Faraon-san
Отправлено: 05 Августа, 2016 - 23:22:12
Post Id



Посетитель


Покинул форум
Сообщений всего: 318
Дата рег-ции: Сент. 2013  


Помог: 8 раз(а)




ну думаю стоит попробовать, так и выясниться будет показывать или нет ))
 
 Top
miketomlin
Отправлено: 05 Августа, 2016 - 23:33:46
Post Id


Частый гость


Покинул форум
Сообщений всего: 129
Дата рег-ции: Июль 2016  


Помог: 5 раз(а)




alexpebody, ответил в вашей теме на киберфоруме.
 
 Top
alexpebody
Отправлено: 06 Августа, 2016 - 07:48:49
Post Id


Новичок


Покинул форум
Сообщений всего: 53
Дата рег-ции: Апр. 2013  


Помог: 0 раз(а)




Спасибо! Попробую.
 
 Top
alexpebody
Отправлено: 08 Августа, 2016 - 04:45:13
Post Id


Новичок


Покинул форум
Сообщений всего: 53
Дата рег-ции: Апр. 2013  


Помог: 0 раз(а)




Собственно результаты, прописал я второй виртуалхост вот так (потому как *:80 это походу и есть дефолт):

<VirtualHost site.ru:80>
ServerName site.ru
ServerAlias www[dot]site[dot]ru
DocumentRoot /var/www/site2
ErrorLog logs/first.ru-error.log
</VirtualHost>

И, как я и считал, URL в строке адреса выглядит точно так же как и при простом mod_rewrite, а именно: site.ru/dir1/, а нужно вот так: site.ru/
 
 Top
alexpebody
Отправлено: 08 Августа, 2016 - 19:14:16
Post Id


Новичок


Покинул форум
Сообщений всего: 53
Дата рег-ции: Апр. 2013  


Помог: 0 раз(а)




К сожалению вот такой конфиг не работает:

<VirtualHost *:80>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www[dot]example[dot]com

#ServerAdmin it@prodsib.com
#DocumentRoot /var/www/html
DocumentRoot /var/www

# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.con f
</VirtualHost>

<VirtualHost sub.site.com>
ServerName sub.site.com
ServerAlias www[dot]sub[dot]site[dot]com
DocumentRoot /var/www/site
ErrorLog ${APACHE_LOG_DIR}/box_error.log
CustomLog ${APACHE_LOG_DIR}/box_access.log combined
</VirtualHost>

Никак! В строке адреса URL браузера: http://sub[dot]site[dot]com выводит index.php корня site.com и все!
Что только не крутил, толку 0 не выводит субдомен!

(Добавление)
ОМГ, все много проще вот так заработало,
ну почему же нигде нет нормальной документации В МЕЛОЧАХ?!

<VirtualHost *:80>
ServerName sub.site.com
ServerAlias www[dot]sub[dot]site[dot]com
DocumentRoot /var/www/site
ErrorLog ${APACHE_LOG_DIR}/box_error.log
CustomLog ${APACHE_LOG_DIR}/box_access.log combined
</VirtualHost>
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB