Какво означават редовете във файла
RewriteRule ^ (. *) (/) $ $ 1 [L, R = 301]
RewriteRule ^ ([^ /.] +) /? $ Index.php? Ref = $ 1 [L]
301 пренасочвания са в ход, но защо? Трябва да рисувате в детайли.
Да вървим по ред.
С това посочвате, че всички правила за текущата уеб директория ще бъдат преобразувани. С други думи, те няма да бъдат наследени от родителската директория, но ще бъдат използвани правилата, които вие дефинирате в този .htaccess файл за тази директория.
Тази директива ще зададе основния URL адрес в контекста на текущата директория. Например, ако посочите RewriteBase/myurl и физическият път до директорията е/abc/def /, тогава всъщност при достъп до страницата на URL адреса http: /www.server.com/myurl/index.html, ще бъде направена заявка към файла/abc /def/index.html. За вашия случай файловете „RewriteBase /“ в тази директория (където е .htaccess) могат да бъдат достъпни, без да се посочва физическата директория: http: //your_server/your_file.html
Директива RewriteCond - дефинира условието, при което се извършва преобразуването, синтаксисът е следният RewriteCond. Посочили сте като низове повикването към вашия сървър и ресурса, заявен в реда за заявка на HTTP .
Условието за домейна не е напълно ясно, т.е. при какво условие искате да изпълните пренасочването. Обикновено има нещо като RewriteCond% www.domain1.com, т.е. пренасочването ще бъде извършено при достъп до хоста www.domain1.com. А условието RewriteCond%/$ показва, че повикването трябва да е към празен път.
- RewriteRule ^ (. *) (/) $ $ 1 [L, R = 301] и RewriteRule ^ ([^ /.] +) /? $ Index.php? Ref = $ 1 [L]
Посочете правилата за пренасочване, тоест всъщност тези редове са отговорни за пренасочването.
За съжаление, не посочихте как трябва да пренасочите, при какви условия, затова ще дам пример за пренасочване, да речем от езика на клиента: