Что делаю неверно в .htaccess (RewriteRule) ?

Asar
На сайте с 23.08.2004
Offline
334
763

Было: RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ index.php?$1=$2 [QSA]

Надо: Чтобы "срабатывали" не только латинские буквы да цифры, но и прочие символы (будет отображаться УРЛ-кодированный запрос поиска по сайту).

Леплю: RewriteRule ^([A-Za-z0-9-]+)/(.*)/?$ index.php?$1=$2 [QSA]

Сам в .htaccess не спец, леплю по наитию. Прошу подсказать, что неверно?

mfl
На сайте с 16.10.2006
Offline
134
mfl
#1

левую часть лучше так:

^([^/]+)/([^/]+)/?$

Asar
На сайте с 23.08.2004
Offline
334
#2

mfl, в таком случае слетает (не подключается) css-файл, который находится в одной из подпапок. А в первоначальном буквенно-цифровом -- не слетает.

При RewriteRule ^([A-Za-z0-9-]+)/([^/]+)/?$ index.php?$1=$2 [QSA] тоже слетает.

Вот этого уже совсем не понял...

mfl
На сайте с 16.10.2006
Offline
134
mfl
#3

Из первого поста не понятно работает ли?

^([A-Za-z0-9-]+)/(.*)/?$ index.php?$1=$2 [QSA]

если работает, к чему вопрос?

mfl, в таком случае слетает (не подключается) css-файл, который находится в одной из подпапок. А в первоначальном буквенно-цифровом -- не слетает.
При RewriteRule ^([A-Za-z0-9-]+)/([^/]+)/?$ index.php?$1=$2 [QSA] тоже слетает.
Вот этого уже совсем не понял...

Два варианта:

1) исключить использование точки

^([^/]+)/([^/\.]+)/?$

2) сделать правило последним для css

RewriteRule ^(css/index\.css) $1 [L]

RewriteRule ^([^/]+)/([^/]+)/?$ index.php?$1=$2 [QSA]

Asar
На сайте с 23.08.2004
Offline
334
#4

mfl, Понятно, спасибо.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий