#php #.htaccess #mod-rewrite
#php #.htaccess #мод-перезапись
Вопрос:
У меня абсолютно нет опыта работы с .htaccess, и я кое-что попробовал сегодня. В основном я хотел, чтобы все мои страницы начинались с http://www . для перенаправления на http://
итак, я сделал поиск в Интернете и нашел эту ссылку :
http://forum.joomla.org/viewtopic.php?p=2437275
опять же, я совершенно не представлял, что я делаю, и я просто скопировал вставленное это
RewriteCond %{HTTP_HOST} !^www.example.com [NC]
RewriteRule ^(.*) http://example.com/$1 [L,R=301]
в файл .htaccess в моем каталоге public_html
я тестировал переход вhttp://www сайт, но ничего не произошло, поэтому я просто удалил все в файле .htaccess, как это было в начале, полностью банковским.
итак, я протестировал это
# Redirect to www
RewriteCond %{HTTP_HOST} !^(www.example.com)?$
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
и затем это:
# Redirect to non-www
RewriteCond %{HTTP_HOST} !^(example.com)?$
RewriteRule (.*) http://example.com/$1 [R=301,L]
точно так же, как говорится в статье
Но теперь, несколько часов спустя, я замечаю что-то действительно странное. Выполнение одного из моих вызовов ajax из jquery занимает около 1 минуты.. Могу ли я что-нибудь сделать, чтобы отменить это? Это почти как что-то делает бесконечный цикл, как говорится в статье. И я понятия не имею, что делать.
Все работает на localhost..
С уважением, Александр
Комментарии:
1. «Ничего не произошло»? Никаких изменений на сайте? У вас пустая страница? Почему бы вам не посмотреть журналы сервера (ошибка и доступ), чтобы увидеть, что происходит? Прямо сейчас вы не предоставили абсолютно ничего полезного для диагностики вашей проблемы (ов).
2. Вы заменили example.com с вашим фактическим доменным именем?
3. Это не может быть бесконечный цикл, если он завершается за одну минуту…
4. перезапись работает сейчас, мне нужно было сначала включить RewriteEngine, но все равно вызов ajax занимает вечность.. ребята, вы думаете, это как-то связано с тем, что я редактирую файл .htaccess, или это должно быть что-то другое?
Ответ №1:
Более оптимизированная версия, у которой нет зависимостей от домена
Просто скопируйте и вставьте в любой домен, и это сработает.
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
Ответ №2:
У вас должен быть
RewriteEngine on
В начале вашего файла.
Это может быть очевидно, но поскольку у вас нет опыта, на всякий случай вам нужно заменить example.com с вашим доменным именем.
Убедитесь, что у вас действительно есть сервер Apache.
Обязательно назовите свой файл «.htaccess» (с точкой, без «»)
Итак, это должно сработать:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.example.com [NC]
RewriteRule ^(.*) http://example.com/$1 [L,R=301]
Я действительно сомневаюсь, что то, что вы сделали с .htaccess, могло замедлить вызов AJAX, проверьте, пуст ли .htaccess сейчас, если это так, это точно не повлияет на него.
Комментарии:
1. вы абсолютно правы, большое вам спасибо, сейчас это работает, но все равно вызов ajax занимает вечность.. ребята, вы думаете, это как-то связано с тем, что я редактирую файл .htaccess, или это должно быть что-то другое?
2. это действительно странно, потому что раньше все работало так, как и должно было, и все еще работает на localhost .. и самое странное, что это всего лишь один из вызовов ajax.. остальное работает нормально. я скопировал файлы с localhost просто для уверенности, но все равно это так .. это расстраивает, когда происходят подобные мистические вещи.. я даже не знаю, с чего начать поиск
3. @Alexander: Я действительно очень сомневаюсь, что это может быть связано, но если вы хотите быть уверены, попробуйте закомментировать все в файле .htaccess с помощью
#
, если это все еще медленно, что вы почти уверены, что они не связаны.4. @Alexander: без проблем, рад помочь, попробуйте локализовать вашу проблему с AJAX и, возможно, опубликуйте другой вопрос, когда вам покажется, что вы поняли, на чем может основываться проблема. Удачи!