Здравствуйте уважаемые форумчане. Есть файл index.php В нем всего одна строчка Код (Text): <?php echo $_GET['a']; ?> Еще есть файл .htaccess в котором написано Код (Text): RewriteEngine on RewriteRule ^([a-z]+)$ ?a=$1 Уважаемые знатоки! Внимание, вопрос! Почему, когда я ввожу в адресную строку /?a=abc. index.php выводит abc. Однако, если я ввожу /abc., то index.php выводит просто abc (без точки)? Подскажите, пожалуйста, почему это происходит и как сделать так, чтобы возвращалась 404 ошибка, если в конце url стоят точки? Ведь RewriteRule, в моем случае, не должен пропускать точки!
ну похоже что в первом случае когда точка проходит, то не используется RewriteRule. И похоже, если вы урлы задаёте так /?a=abc. то у вас вобще ни в каком случае не используется правило. =) а если так /lalala.pupupu
Это и есть весь .htaccess Кстати, если ввести в конце url любой символ кроме точки, например /abc-, то вернется 404 ошибка.
не знаю. регулярка говорит возьми символы с a по z подряд один или больше одного с самого начала до самого конца строки. если бы не было знака доллара на конце, то всё было бы понятно.
данная регулярка вообще-то не должна пропускать имя "abc." (поверь или проверь) видимо сам Apache транслирует имена с точкой, даже с любым количеством точек, на конце как имена без точки на конце (поверь или проверь) создай на сайте текстовый файл с именем, скажем, "xxx" и попробуй набрать в URL "xxx...". )))