![]() ![]() |
17.02.2013г. в 19:56ч.
Коментар:
#1
|
|
|
Новак ![]() Група: Потребители Съобщения: 4 Дата на регистрация: 17.11.2011г. Потребител # 21 247 |
Здравейте! Имам следния тип линкове : page.php?a=var1&b=var2 Какъв е начина, чрез mod_rewrite да направя нещо като шаблон за проверка, дали линковете са от този тип и съответно ако е така да изглеждат по този начин в адреса: domain.com/page/a/var1/b/var2 Потърсих и прочетох доста неща, но някак си не успях да открия достатъчно простичко обяснение за да схвана основния принцип. Благодаря предварително. |
|
|
17.02.2013г. в 21:45ч.
Коментар:
#2
|
|
![]() Доктор - уроци ![]() ![]() ![]() ![]() ![]() ![]() Група: Потребители Съобщения: 836 Дата на регистрация: 15.11.2008г. Потребител # 6 111 |
Нещо като
КОД RewriteRule ^page/a/(.*)/b/(.*)$ page.php?a=$1&b=$2 [L] не върши ли работа? Това съм го адаптирал от |
|
|
17.02.2013г. в 21:59ч.
Коментар:
#3
|
|
|
Новак ![]() Група: Потребители Съобщения: 4 Дата на регистрация: 17.11.2011г. Потребител # 21 247 |
Ами поставих кода, но се сетих че не съм проверявали с phpinfo(); на сървъра как стоят нещата. направих го и се оказа, че никъде не виждам модула mod_rewrite да е зареден. Ползвам хост от суперхостинг и до колкото знам не трябва да има проблем с тези неща. Означава ли че трябва аз да го активирам някак?
Файла ми започва така: Options +FollowSymlinks RewriteEngine On RewriteBase / Още нещо ли е нужно? Това съобщение е било редактирано от quicksand на 17.02.2013г. в 22:01ч. |
|
|
18.02.2013г. в 01:27ч.
Коментар:
#4
|
|
![]() Доктор - уроци ![]() ![]() ![]() ![]() ![]() ![]() Група: Потребители Съобщения: 836 Дата на регистрация: 15.11.2008г. Потребител # 6 111 |
Ами доколкото аз съм ползвал ModRewrite, не, файла започва правилно. Ако модула не е зареден, проблема би следвало да е в хостинга. Суперхостинг имат добра поддръжка (поне по слухове), питай. Преди това може да пробваш два трика - сложи на .htaccess файла права 644 (rwxrw-rw-), за да си сигурен, че проблема не е с правомощията на файловете. Ако все още не работи, пробвай да сложиш тривиално пренаписване:
КОД RewriteRule ^test$ some_dummy_page.html [L] след което пробвай да достъпиш domain.com/test. Ако те пренасочи към посочената от теб страница, значи бъркаме някъде в синтаксиса. Според мен обаче просто не ти е зареден модула |
|
|
18.02.2013г. в 01:44ч.
Коментар:
#5
|
|
|
Новак ![]() Група: Потребители Съобщения: 4 Дата на регистрация: 17.11.2011г. Потребител # 21 247 |
Питах ги Суперхостинг и ми отговориха, че модула си ок и трябва да си прегледам кода. т.е. проблема е в моя телевизор
Не съм запозната с тези неща и се опитвам да се уча. Добавих още нещо във файла и то работи. Просто това правило за пренаписването не се получава. Сега файла изглежда така: Options +FollowSymLinks RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^domain\.com RewriteRule ^(.*)$ http : // www. domain.com / [R=301,NC] RewriteRule ^page/a/(.*)/b/(.*)$ page.php?a=$1&b=$2 [QSA,L] Преди "page" и "page.php" , не трябва ли да се изписва и домейна или то е нещо по подразбиране. Искам да кажа, че тази страница "page.php" е вътрешна а не индекс страницата. Извинявам се ако въпроса е глупав. Относно правата на .htaccess файла, предполагам че това ще да се прави чрез някой друг файл? Това съобщение е било редактирано от quicksand на 18.02.2013г. в 01:46ч. |
|
|
18.02.2013г. в 03:38ч.
Коментар:
#6
|
|
|
Новак ![]() Група: Потребители Съобщения: 4 Дата на регистрация: 17.11.2011г. Потребител # 21 247 |
Нещата проработиха, но сега имам друг проблем. css-а на тези страници никакъв го няма. Някакви идей?
|
|
|
19.02.2013г. в 02:11ч.
Коментар:
#7
|
|
![]() Доктор - уроци ![]() ![]() ![]() ![]() ![]() ![]() Група: Потребители Съобщения: 836 Дата на регистрация: 15.11.2008г. Потребител # 6 111 |
Страницата на проекта съдържа пълна докумнетация, предния път не се сетих да ти дам нея.
Относно това дали трябва да пишеш homain.com пред page и page.php отговора е твърдо не. Това е така, понеже модула позволява пренаписване на адреса СЛЕД базовия адрес на сайта. Причини много, от една страна е нелогично да се опитваш да пренапишеш адрес, на който не отговаря твоя сървър, от друга страна е cross site attack. Относно CSS файловете. Да, имам идея, когато се случва при мен, обикновено се дължи на начина, по който ги включвам в кода. Примерно преди пренаписването имам архитектура от типа +templates +-----code.php +css +-----file.css и в code.php добавям стила с връзка href="../css/file.css" след пренаписването на адресите примерно адреса, на който се отваря code.php става domain.com/main/sth/code и в такъв случай стиловете се търсят на грешното място domain.com/main/sth/css. Виж дали и при теб не е нещо подобно |
|
|
![]() ![]() |