SearchEngines.bg

Това е примерно съобщение за гост. Регистрирайте безплатен акаунт днес, за да станете потребител на SearchEngines.bg! След като влезете, ще можете да участвате в този сайт, като добавите свои собствени теми и публикации, както и да се свържете с други членове чрез вашата лична входяща кутия! Благодарим ви!

Дертове с htaccess и mod_rewrite

batzidi

New member
Привет.
Ситуацията на кратко:
боря се да направя следното - при зареждане на site.com/about-us да зарежда site.com/about-us.php - това успях със следния код:
1.RewriteCond %{REQUEST_FILENAME} !-d
2.RewriteRule ^([A-Za-z0-9_-]+)/?$ $1.php
Към горните редове имам следните въпроси дали правилно съм разбрал:
На 1. проверява дали е директория и ако е, не изпълнява условието на 2.
На 2. взема последно въведения низ от символи и му добавя .php а в адрес бара остава само низа.

Сега и езиците - сайта е изграден така, че да си взема една GET променлива и зарежда съответния език. Идеята при изписване в адрес бара на site.com/page/eng да зареди site.com/page?lang=eng ползвам този код, но не сработва:
1.RewriteCond %{REQUEST_FILENAME} !-f
2.RewriteCond %{REQUEST_FILENAME} !-d
3.RewriteRule ^(.*)/(bul|eng)$ $1.php?lang=$2 [NC]
въпросите:
Как е по - добре да си изписва site.com/lang/page или site.com/page/lang?
По 3. кое не правя правилно, че да предавам променливата за езика?
И как да направя така, че след като избере езика в адрес бара да не се появява /lang, че ми чупи css-а

Малко дълго стана, но да се надявам, че съм задал въпросите си така, че да са ясни.

Предварително благодаря

П.С. След цялата тая игра всички проекти в момента започнаха да се отварят без да се налага да пиша разширението на края. Някакви иде как да се оправи това?

SOLVED - инфо по - надолу
 
Последно редактирано:
Re: Дертове с htaccess и mod_rewrite

UPDATE - 1/2 SOLVED
Още седя и се чудя.
В момента линковете са точно както ги искам - без разширение.
Езика се сменя и не чупи css-a, даже и връзките са релативни :)
В момента това е htaccess-a

Options +FollowSymLinks -MultiViews
DirectorySlash Off
RewriteEngine On
RewriteRule ^([-\w0-9_]+)\/?$ $1.php [L,NC,QSA]
RewriteRule ^([-\w0-9_]+)/(bul|eng)?$ $1.php?lang=$2 [L,NC]

Доабвих само <base ='absolute/url/to local|web' /> и работата стана. Да

Оправи се и проблема с другите проекти по другите папки като махнах <IfModule mod_rewrite.c></IfModule> - егаси още се чудя защо това дънеше и дрегите неща. Може би защото съм с apache 2.2.16 на win ... както и да е.

Остават ми тия чуденки, затова и е 1/2 SOLVED. Ще се радвам на мнения.
Почвам и на вътре да изграждам линковете да видим до къде ще я докарам.

А и честит ден на майстора!
 

Горе