Файл .htaccess исчезает в filezilla?Как проверить, есть ли файл или нет? - PullRequest
0 голосов
/ 04 августа 2010

по какой-то странной причине моя CMS выходит из системы, если в адресной строке не указан www перед полным именем сайта.например, когда мы заходим на xyz.com, он переносит меня на веб-сайт, но затем он не будет отображаться как вошедший в систему, а если я введу www.xyz.com, он найдет cookie и покажет, что я вошел в систему.

Что я хочу сделать, так это когда пользователь вводит на xyz.com, я хочу, чтобы он напрямую (прозрачный для пользователя) переходил на www.xyz.com.Я хочу добавить этот www до xyz.com.Я попытался добавить файл .htaccess в каталог, где присутствует index.php, и это код в файле htaccess.

DirectoryIndex index.php<br> Redirect xyz.com www.xyz.com/index.php

Файл .htaccess исчезает при передаче его черезftp filezilla.

Ответы [ 3 ]

0 голосов
/ 04 августа 2010

Если вы хотите изменить свой index.php, вы можете добавить следующую логику в начало файла:

/*This is a tempory redirection from mysite.com to www.mysite.com*/
if($_SERVER['SERVER_NAME'] == 'mysite.com')
{
    $redirect =     $_SERVER['REQUEST_URI'];
    header( 'Location: http://www.mysite.com'. $redirect ) ;
}
0 голосов
/ 05 августа 2010

Если вы хотите использовать перезаписи, убедитесь, что mod_rewrite загружается в ваш conf-файл Apache, и убедитесь, что для параметра AllowOverride установлено значение All или только директивы, которые вы хотите разрешить в .htaccess

Также, как сказал aletzo, вы, вероятно, хотите, чтобы ваш файл cookie покрывал весь ваш домен, поэтому измените домен cookie с www.example.com на example.com.Тогда не будет иметь значения, имеет ли пользователь доступ с префиксом www или в поддомене.

РЕДАКТИРОВАТЬ: Рад, что вы нашли ответ, который вы искали, но если вам нужно, чтобы filezilla показывал вам .htaccess вбудущее, Сервер -> Принудительно показывать скрытые файлы

0 голосов
/ 04 августа 2010

попробуйте это в файле htaccess:

Опции + FollowSymlinks
ПереписатьEngine на
RewriteCond% {HTTP_HOST} ^ xyz.com $
RewriteRule ^ /? $ "http://www.xyz.com" [R = 301, L]

Однако ваша проблема звучит как cookie. Вероятно, CMS использует cookie для проверки статуса входа, но параметром домена cookie является «www.xyz.com» вместо «.xyz.com».

--- редактировать ---

немного улучшил последнюю строку кода (он протестирован и работает), но, как сказал tcp, mod_rewrite должен быть включен. Если вы не можете включить его, попробуйте код, который опубликовал Lobsterm, и если вы не можете этого сделать, вы можете изменить параметр домена cookie с «www.xyz.com» на «.xyz.com»

...