Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2014, 00:06   #1
Olejik
Форумчанин
 
Регистрация: 02.06.2009
Сообщений: 218
По умолчанию Настроить htaccess

Добрый вечер!
сейчас в наличии есть такой .htaccess:
Код HTML:
# BEGIN WordPress

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

RewriteCond %{HTTP_HOST} ^www\.site\.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

</IfModule>

# END WordPress
Сразу скажу, что частично решил одну задачу - убрать www из строки. Частично - т.к. если написать www.site.ru, тогда перекинет на site.ru, а если написать www.site.ru/help.php, тогда www останется.
Плюс еще необходимо сделать так, чтобы убрать index.php, т.е. вместо site.ru/index.php было site.ru, а вместо www.site.ru/index.php было site.ru.
Я или плохо искал и санки не едут, помогите пожалуйста. Хотя бы объясните пожалуйста или мыслю киньте!
Спасибо огромное заранее за помощь.
Olejik вне форума Ответить с цитированием
Старый 25.10.2014, 10:57   #2
Olejik
Форумчанин
 
Регистрация: 02.06.2009
Сообщений: 218
По умолчанию

Часть проблемы решена, оказывается в .htaccess важен порядок и еще флаг L прерывает разбор правил.
Код:
# BEGIN WordPress

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /


RewriteCond %{HTTP_HOST} ^www\.site\.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]


</IfModule>

# END WordPress
Осталось еще разобраться с index.php.
Olejik вне форума Ответить с цитированием
Старый 25.10.2014, 20:37   #3
Olejik
Форумчанин
 
Регистрация: 02.06.2009
Сообщений: 218
По умолчанию

Вечер добрый!
вот достал следующий кусок кода
Код:
RewriteCond %{REQUEST_URI} ^/index[.]+(\w+)$
    RewriteRule . / [R=301,L]
вроде все логично, если в адресной строке site.ru/index.php увидит страницу index.php или index.html - переводит на www.site.ru/ но у меня вообще со всех страниц переход на site.ru
например:
переходим site.ru/help.php - переход на site.ru/
переходим site.ru/gallery - переход на site.ru/
Почему так? Подскажите пожалуйста.
Olejik вне форума Ответить с цитированием
Старый 26.10.2014, 11:14   #4
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 821
По умолчанию

Мне кажется, потому что стоит перенаправление с любого адреса на index.php:
Код:
RewriteRule . /index.php [L]
^-.-^ My GitHub

Последний раз редактировалось Fenex; 26.10.2014 в 11:19.
Fenex вне форума Ответить с цитированием
Старый 26.10.2014, 15:50   #5
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,453
По умолчанию

ТС, потому, что стоят проверки на существования папок и файлов и если их нет, то все запросы передаются index.php через REQUEST_URI
uberchel вне форума Ответить с цитированием
Старый 26.10.2014, 22:56   #6
Olejik
Форумчанин
 
Регистрация: 02.06.2009
Сообщений: 218
По умолчанию

т.е. легче чисто на php проводить проверку и редеректить, а не на .htaccess?
Olejik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
htaccess icroice PHP 1 29.05.2013 01:39
.htaccess kuba1981 PHP 0 31.10.2012 17:36
htaccess + wp offname WordPress и другие CMS 0 27.10.2012 11:05
.htaccess soonner PHP 4 16.12.2010 23:51
htaccess wall66 PHP 1 25.02.2009 17:52