Reply to this topicStart new topic
> Помощ с RewriteRule и .htaccess
quicksand
публикация 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
Потърсих и прочетох доста неща, но някак си не успях да открия достатъчно простичко обяснение за да схвана основния принцип.
Благодаря предварително.
Go to the top of the page
 
+Quote Post
fakeuser
публикация 17.02.2013г. в 21:45ч.
Коментар: #2


Доктор - уроци
******

Група: Потребители
Съобщения: 836
Дата на регистрация: 15.11.2008г.
Потребител # 6 111




Нещо като
КОД
RewriteRule ^page/a/(.*)/b/(.*)$ page.php?a=$1&b=$2 [L]

не върши ли работа? Това съм го адаптирал от
Go to the top of the page
 
+Quote Post
quicksand
публикация 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ч.
Go to the top of the page
 
+Quote Post
fakeuser
публикация 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. Ако те пренасочи към посочената от теб страница, значи бъркаме някъде в синтаксиса. Според мен обаче просто не ти е зареден модула
Go to the top of the page
 
+Quote Post
quicksand
публикация 18.02.2013г. в 01:44ч.
Коментар: #5


Новак
*

Група: Потребители
Съобщения: 4
Дата на регистрация: 17.11.2011г.
Потребител # 21 247




Питах ги Суперхостинг и ми отговориха, че модула си ок и трябва да си прегледам кода. т.е. проблема е в моя телевизор sad.gif

Не съм запозната с тези неща и се опитвам да се уча. Добавих още нещо във файла и то работи. Просто това правило за пренаписването не се получава.
Сега файла изглежда така:

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" е вътрешна а не индекс страницата. Извинявам се ако въпроса е глупав. smile.gif

Относно правата на .htaccess файла, предполагам че това ще да се прави чрез някой друг файл?

Това съобщение е било редактирано от quicksand на 18.02.2013г. в 01:46ч.
Go to the top of the page
 
+Quote Post
quicksand
публикация 18.02.2013г. в 03:38ч.
Коментар: #6


Новак
*

Група: Потребители
Съобщения: 4
Дата на регистрация: 17.11.2011г.
Потребител # 21 247




Нещата проработиха, но сега имам друг проблем. css-а на тези страници никакъв го няма. Някакви идей?
Go to the top of the page
 
+Quote Post
fakeuser
публикация 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. Виж дали и при теб не е нещо подобно
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

 

RSS Олекотена Версия Сега е: 08:13 - 25.08.2026г.

Калдейта Ком ЕООД - © 2003-. Всички права запазени.