#.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
, я думаю, это решит вашу проблему.