Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   htaccess rewrite уровни (https://javascript.ru/forum/server/49491-htaccess-rewrite-urovni.html)

ivan22 15.08.2014 10:07

htaccess rewrite уровни
 
Добрый день.

Есть урл вида
1) example.com/example/page_N
2) example.com/example/example/index.php (example.com/example/example/)

Как правильно прописать рэврайт, чтобы открывать урл на уровень ниже
1) example.com/page_N
2) example.com/example/index.php (example.com/example/)


Спасибо.

ksa 15.08.2014 10:30

Поскольку раздел Серверные языки и технологии, предложу такой вариант... :)

n
	s url="example.com/example/page_N"
	w !,$$short(url)
	s url="example.com/example/example/index.php"
	w !,$$short(url)
	q

/// Укоротить URL
short(Url)
	n words,wrd1,wrd2
	s words=$l(url,"/")
	s wrd1=$p(url,"/",1,words-2)
	s wrd2=$p(url,"/",words)
	q wrd1_"/"_wrd2

Вот что выводит

d ^tmp
 
example.com/page_N
example.com/example/index.php

ivan22 15.08.2014 12:21

Хочется обойтись средствами апач, получилось вот так

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.+) $1 [L,QSA]
RewriteCond %{DOCUMENT_ROOT}/example%{REQUEST_URI} -f
RewriteRule ^(.+) example/$1 [L]
RewriteRule ^(.*) example/$1 [L]

Но не работает с правилом
2) example.com/example/example/index.php (example.com/example/example/)
2) example.com/example/index.php (example.com/example/)

Воспринимает как начальное состояние 1) урл. Как исправить?


Часовой пояс GMT +3, время: 14:31.