|
|
|
| имеем следующие правила:
AllowOverride All
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule ^(.+)//([^/]+)/?$ index.php?url=$1&var1=$2
|
Под Apache1.3 работает все прекрасно. Под Apache2 перестает совпадать... не нравится ему двойной слеш. Как можно переписать регулярное выражение (или починить апач)? | |
|
|
|
|
|
|
|
для: Loki
(06.03.2007 в 13:58)
| | а если попробовать слеши экранировать? | |
|
|
|
|
|
|
|
для: ZuArt
(06.03.2007 в 14:57)
| | Как вы себе представляете экранирование двойного слеша? Одинарные-то обрабатываются нормально. | |
|
|
|
|
|
|
|
для: Loki
(06.03.2007 в 15:09)
| | ну во первых экранировать стандартно "//" -> "\/\/"
во вторых - а где тут еще есть слеши RewriteRule ^(.+)//([^/]+)/?$ index.php?url=$1&var1=$2 кроме как в квадратных скобках и в конце... причем если в [...] понятно, что исключение из диапазона, а вот последний /? - вопрос как ЕГО воспринимает Апача - может еще и в нем трабла... - еще возникает вопрос - а если там БОЛЬШЕ "///" в конце урла - то правило так же не выполнится, т.к. в конце должно быть 0 или 1 слеш... лучше уж тогда /*$
на крайняк, попробуйте заключить и слеши в кавычки - может что-то и выйдет из этого | |
|
|
|
|
|
|
|
для: ZuArt
(06.03.2007 в 15:32)
| | как я уже написал выше, ему не нравится двойной слеш. Если бы я это не проверил, то не написал бы. Если добавить в выражение кавычки, то выражение, понятное дело, работать перестанет.
ps вариант с ^(.+)[/]{2}([^/]+)/?$ я уже тоже проверил... и он тоже не работает, к сожалению. | |
|
|
|
|
|
|
|
для: Loki
(06.03.2007 в 15:09)
| | может это из-за плюса (.+) ? | |
|
|
|
|
|
|
|
для: Trianon
(06.03.2007 в 15:33)
| | Смущает именно то, что не работает на одном хостинге. То есть дело либо в его настройках либо в версии апача.
RewriteRule ^(.+)-([^/]+)/?$ index.php?url=$1&var1=$2
|
для строки forum-1/ обрабатывается нормально
а
RewriteRule ^(.+)//([^/]+)/?$ index.php?url=$1&var1=$2
|
для forum//1/ спотыкается
более того
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?url=$1&var1=$2
|
для forum/1/ тоже обрабатывается корректно. Поэтому я и пребываю в некоторой растерянности: слеши обрабатываются корректно... но в количестве одной штуки. То есть + можно заменить на * - принципиальной разницы не будет, так как первая часть выражения точно присутствует. | |
|
|
|
|
|
|
|
для: Loki
(06.03.2007 в 15:43)
| | А если явно указать двоеточие?
| |
|
|
|
|
|
|
|
для: Trianon
(06.03.2007 в 16:32)
| | Двоеточие обрабатывается нормально... двойное двоеточие - тоже. А двойной слеш - нет. | |
|
|
|
|
|
|
|
для: Loki
(06.03.2007 в 13:58)
| | локализовал косяк:
правило
примененное к
дает в результате
То есть все дублирующиеся слеши апач превращает в один. Предлагаю вопрос "Кто виноват?" опустить и сразу перейти к "что делать?".
Предложение использовать другие разделители я уже сам придумал, так что на него время тратить не стоит. А вот как заставить апач не своевольничать с URL мне было бы узнать интересно. | |
|
|
|