(PHP) mod_rewrite установка корневого (основного) URL

las_zt
На сайте с 02.11.2005
Offline
90
1510

помогите ламеру в настройке mod_rewrite!!!

в .htaccess написал следующее правило:


RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteRule ^.htaccess$ - [F]

RewriteRule ^(.*)cat/(.*)$ $1index.php?task=showlinks&cat_id=$2
RewriteRule ^(.*)add/(.*)$ $1index.php?task=fillform$2

столкнулся с проблемой:

если задаю УРЛ: "www.site.ru/add/" или "www.site.ru/cat/" то корневой урл соответственно становиться "/add/" или "/cat/" , а не "/"

Вопрос: как сделать что бы корневой урл оставался прежним "/" ?

Artlight
На сайте с 15.09.2003
Offline
123
#1

Может чего путаю, но мне казалось, что корневой папкой для правил, является та папка, в которой находится файл .htaccess с правилами

Обменяю свой вмр на ваш яд курс 1-1
las_zt
На сайте с 02.11.2005
Offline
90
#2
Artlight:
Может чего путаю, но мне казалось, что корневой папкой для правил, является та папка, в которой находится файл .htaccess с правилами

незнаю, может ето глюк, но картинки и стили подгружаються с вложенной директории "/add/" или "/cat/" , а не с "/" (корневой) 😕

ref
На сайте с 21.11.2004
Offline
91
ref
#3

las_zt, прочитайте, что написали. Что сказать то хотели?

с уважением, Леонид
Artlight
На сайте с 15.09.2003
Offline
123
#4
las_zt:
но картинки и стили подгружаються не с "/add/" или "/cat/" , а не с "/" (корневой)

Если ссылки относительные, перед ссылкой на картинку или таблицу стилей попробуйте поставить ../

или формируйте абсолютные: http://site.ru/img/...

Lor
На сайте с 28.05.2004
Offline
352
Lor
#5

Я не совсем понял, что вам надо, но попробуйте так:


RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteRule ^.htaccess$ - [F]

RewriteRule ^cat/(.*)$ /index.php?task=showlinks&cat_id=$1 [NC,L]
RewriteRule ^add/(.*)$ /index.php?task=fillform$1 [NC,L]
Йопез - форум без модераторов. https://yopez.com
M
На сайте с 21.11.2004
Offline
230
#6
las_zt:
Вопрос: как сделать что бы корневой урл оставался прежним "/" ?

Уберите RewriteBase / и добавьте к правилам, там где нужно /

Продвигаю домены руками (http://roke.ru)
humbert
На сайте с 16.03.2006
Offline
540
#7

RewriteEngine on

Options +FollowSymlinks

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !.(css)|(swf)|(jpg)|(png)|(gif)|(pcx)$

RewriteRule ^cat/([0-9]+)\.html$ index.php?task=showlinks&cat_id=$1 [L]

RewriteRule ^add/([0-9]+)\.html$ index.php?task=fillform$1 [L]

Результат http://site.ru/cat/1.html (2.html, 3.html....)

http://site.ru/add/1.html (2.html, 3.html....)

Корневым и правда станет /cat/ или /add/.

Как сделать корневым каталог сайта не умею пока.

Парсинг прайс-листов, наполнение интернет-магазина товаром. (https://humbert.ru) Любая CMS (Битрикс, OpenCart, Prestashop и даже Woo Commerce )
SZ
На сайте с 17.08.2005
Offline
63
#8

mod_rewrite делает преобразования только по правилам, описаным в htaccess.

В браузере ваша страничка имеет вид www.site.ru/cat/index.html

Поэтому, если в коде идет ссылка на картинку вида href="images/button.jpg", браузер пытается картинку утянуть с адреса www.site.ru/cat/images/button.jpg.

Ведь загрузка картинок идет со стороны браузера, а не сервера.

Выходов три:

1. Указывать в ссылках полный реальный путь до картинок

2. Прописать в htaccess правила преобразований также для картинок

3. Если картинки во всех случаях лежат в в папке images, расположенной в каталоге выше на одну относительно отображаемого в браузере, можно указывать относительный путь, но вида "../images/button.jpg"

(т.е. странички вида www.site.ru/cat/index.html и www.site.ru/add/index.html, а картинки для них по адресу www.site.ru/images/button.jpg)

las_zt
На сайте с 02.11.2005
Offline
90
#9

спасибо большое за помощь!

методы 1 и 2 работают (от SergoZD), но получаеться не универсально, мне придеться все подправлять.

интересует метод 2:

Прописать в htaccess все правила преобразований...

тогда можно будет реализовать все без изменений в исходниках сайта☝

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий