.htaccess продолжает заменять URI на index.php

Мы сделали флаер, на котором печатается URL-адрес, который выглядит так:

mycompany.de/special

Но если пользователь действительно вводит этот URL-адрес, то он перенаправляется на стартовую страницу https://www.mycompany.de/index.php вместо перенаправления на https://www.mycompany.de/special

Пока это мой .htaccess, он принудительно использует https и www:

RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Это работает почти так, как ожидалось, единственная проблема в том, что /special удаляется и заменяется на /index.php. Вопрос в том, почему special заменяется?


person Black    schedule 12.12.2018    source источник
comment
@starkeen, как это связано с моим вопросом?   -  person Black    schedule 12.12.2018
comment
@PedroRodrigues, это вообще не связано с моим вопросом, как это дубликат?   -  person Black    schedule 12.12.2018
comment
Что именно у вас не работает?   -  person Amit Verma    schedule 12.12.2018
comment
Я не уверен, какой информации не хватает, я добавил всю необходимую информацию в свой вопрос @starkeen.   -  person Black    schedule 12.12.2018
comment
Извините, но опубликованное вами правило выглядит нормально, и оно работает для меня.   -  person Amit Verma    schedule 12.12.2018
comment
Является ли /special реальным каталогом?   -  person Amit Verma    schedule 12.12.2018
comment
Ты шутишь, да? Не связанный с вашим вопросом, как вы можете аргументировать, что я могу спросить. Это связано с вашим вопросом, и вы не должны ожидать каких-либо дальнейших комментариев от меня по этому поводу, если только вы не заявите, чего вы не можете достичь. Не ждите, что кто-то сделает вашу работу, есть много джентльменов, которые ждут вас, чтобы помочь; помогите им это сделать. Я выхожу.   -  person Pedro Rodrigues    schedule 12.12.2018
comment
@pedroRodrigues, кстати, вопрос не в перенаправлении на новый сайт :)   -  person Amit Verma    schedule 12.12.2018
comment
@starkeen, нет, /special - это просто маршрут. Я работаю с Magento и создал сайт как страницу CMS. Фактический контент хранится в базе данных.   -  person Black    schedule 12.12.2018
comment
Я думаю, что это проблема Magento: .htaccess должен работать. Есть что-то еще, что перенаправляет страницу после него. Или предоставьте полный .htaccess, если есть другие условия.   -  person Shim-Sao    schedule 12.12.2018
comment
@ Шим-Сао, мое условие находится внизу файла .htaccess, поэтому оно не может быть перезаписано. Я проверю, является ли magento причиной, закомментировав код в index.php   -  person Black    schedule 12.12.2018
comment
Я не понимаю, почему нельзя перезаписать?   -  person Shim-Sao    schedule 12.12.2018
comment
@ Шим-Сао, ты прав, это был глупый комментарий. Это МОЖЕТ быть перезаписано, и оно было перезаписано :/ Я нашел решение и выложу его   -  person Black    schedule 12.12.2018
comment
Правило, которое вы указали, должно быть помещено перед всеми другими правилами, а затем очистить кеш браузера.   -  person anubhava    schedule 12.12.2018


Ответы (1)


Я смог решить это с помощью этого кода:

RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteCond %{REQUEST_URI} !^/(media|skin|js)/
RewriteCond %{REQUEST_URI} !^/special
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php/%{REQUEST_URI} [L]
person Black    schedule 12.12.2018