Странное поведение перезаписи URL-адреса htaccess

Я хочу переписать example.com/login в example.com/login.php
это работало на моем старом сервере, так как я использовал это правило в файле .htaccess:

RewriteRule ^login$ login.php [L]

когда я перешел на новый сервер, это конкретное правило перестало работать, но если я изменю, например, login на loginx

RewriteRule ^loginx$ login.php [L]

правило работает, и я вижу страницу входа, когда захожу на example.com/loginx

также, если я меняю имя файла, правило тоже начинает работать

RewriteRule ^login$ loginx.php [L]

Похоже, что если правило и файл имеют одно и то же имя (логин в данном случае), правило не работает по непонятной мне причине, кто-нибудь знает, почему это происходит и как с этим бороться?

Вот полный .htaccess файл:

RewriteEngine On
RewriteBase /
RewriteRule ^login$ login.php [L]
RewriteRule ^users$ users.php [L]
RewriteRule ^profile$ me.php [L]

проблема возникает и с users (потому что файл имеет имя в качестве URL-адреса)
правило profile работает правильно.

Работает с этим тестером: htaccess.madewithlove.be?share=eaac3d98-5dd7-586f-9122-20dd7‌​7ab…

Daan 16.05.2019 14:47

У вас есть доступ к файлам apache .conf?

Dusan Bajic 16.05.2019 14:49

да, я хочу добавить, что все остальные правила перезаписи работают, кроме этого

mondersky 16.05.2019 14:51

Пожалуйста, опубликуйте весь .htaccess, возможно, это конфликтующее правило.

Daan 16.05.2019 14:53

Отключите MultiViews, он чаще всего является виновником подобных ситуаций.

04FS 16.05.2019 14:53

большое спасибо, это решило проблему

mondersky 16.05.2019 15:05
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
6
31
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы добавили RewriteEngine On над ним в .htaccess?

движок перезаписи включен да, все остальные правила перезаписи работают и само правило начинает работать, если я что-то меняю в слове "логин"

mondersky 16.05.2019 14:49
Ответ принят как подходящий

У меня все заработало благодаря 04FS
я только что добавил

Options -Multiviews

в верхней части моего файла htaccess

Какая у вас версия апача? Были ли у вас какие-либо другие файлы, базовое имя которых также было login или users? (Обычно, с включенным MultiViews, login.php и users.php все еще должны были быть вызваны, поскольку это то, что делает MultiViews, но две затронутые директивы mod_rewrite были бы эффективно обойдены.)

MrWhite 16.05.2019 23:25

Другие вопросы по теме