.htaccess не работает на новом сервере, если правило перезаписи соответствует перенаправлению

#.htaccess #mod-rewrite #url-rewriting

#.htaccess #мод-перезапись #url-перезапись

Вопрос:

На нашем новом сервере некоторые правила перезаписи .htaccess больше не работают. Они отлично работают на нашем старом сервере и в моей локальной среде. Проблема, похоже, возникает, если условие перезаписи соответствует назначению перезаписи:

 # Examples, 1st and 2nd rule where not together in one file
# Does not work
RewriteRule ^wartung/?$ wartung.php [L,NC,QSA]

# Does work
RewriteRule ^wartung/?$ test_wartung.php [L,NC,QSA]

# Does not work
RewriteRule ^produkte/?$ produkte.php [L,NC,QSA]

# Does work
RewriteRule ^kundenkonto/?$ service.php [L,NC,QSA]
 

В чем моя ошибка?
Дальнейшие тесты показали, что не работают все правила, которые имеют этот шаблон

 RewriteRule ^something/?$ something.php [L,NC,QSA]
 

Они работают
Дальнейшие тесты показали, что не работают все правила, которые имеют этот шаблон

 RewriteRule ^something/?$ something_else.php [L,NC,QSA]
 

Но я не понимаю, почему?

Всех с новым годом!!

Комментарии:

1. Я думаю, что 2-е правило НЕ будет работать, очевидно, поскольку, если 1-е правило выполняется успешно, оно никогда не будет выполнено на 2-м, следовательно, оно НЕ работает (см. Часть Условия ^wartung/?$ одинакова в 1-м и 2-м правилах), я сомневаюсь, что это когда-либо сработало бы ИМХО. Для вашего 4-го правила (2-е нерабочее правило) не могли бы вы убедиться, что файл service.php присутствует в том же пути, где присутствует ваш файл htaccess? Пожалуйста, сообщите об этом, спасибо.

2. @RavinderSingh13 Спасибо за ваш комментарий. 1-е и 2-е правило, где просто примеры, они не появлялись вместе. .htaccess и все файлы находятся в одной папке.

3. не могли бы вы подтвердить один раз, присутствуют ли файлы wartung.php и produkte.php в том же месте, где находится .htaccess? (но опять же, левая сторона вашего 1-го и 2-го правила (часть условия) одинакова, поэтому будет работать только 1 из них, в основном первое правило, если ваш файл wartung.php найден).

4. @RavinderSingh13 Спасибо. Я понял. Это не работает : RewriteRule ^wartung/?$ wartung.php [L,NC,QSA] . Но если я ЗАМЕНЮ его этим RewriteRule ^wartung/?$ test_wartung.php [L,NC,QSA] , это сработает. Все файлы wartung.php , produkte.php , service.php и test_wartung.php находятся в одной папке

5. Попробуйте отключить multiviews на вашем сервере. Добавьте следующую строку в свой htaccess Options -Multiviews , я думаю, это решит вашу проблему.