Искать  
 
   
2 из 2
2
ЧПУ  (Решено)
Отправлено: 29 Март 2011 04:25 P.M.   [ Игнорировать ]   [ # 16 ]
Member
Avatar
RankRankRank
Всего сообщений:  363
Зарегистрирован  2009-01-02
divined - 29 Март 2011 09:55 A.M.

Перешел на друпал и забил на ЕЕ, даже сказал директору чтобы лецензию выкинул.

И мне смешно до слез ))

http://www.drupal.ru/book/
http://www.drupal.ru/book

http://www.drupal.ru/node/59789
http://www.drupal.ru/node/59789/

http://newsland.ru/news/detail/id/665658/cat/42
http://newsland.ru/news/detail/id/665658/cat/42/

 Подпись 

Я в космосе

Профиль
 
 
Отправлено: 29 Март 2011 04:27 P.M.   [ Игнорировать ]   [ # 17 ]
Новичок
Rank
Всего сообщений:  61
Зарегистрирован  2010-10-05

Да, и забыл сказать что это не голословно, я знаю об этой возможности и уже попробовал это давно.

В любом из 3-х случаев Сайт слетает с катушек =)

Профиль
 
 
Отправлено: 29 Март 2011 04:39 P.M.   [ Игнорировать ]   [ # 18 ]
Новичок
Rank
Всего сообщений:  61
Зарегистрирован  2010-10-05
Станислав - 29 Март 2011 04:22 P.M.

Я скинул пример с работающего сайта. Это избавит от дублирования страниц в поисковике (чего мы, собсно, и добиваемся), т.к. у нас стоит редирект 301.

divined, вот полный код

AddDefaultCharset utf8
Options 
+FollowSymLinks
ErrorDocument 404 http
://www.***.ru/404/

RewriteBase /
RewriteEngine On

# Add a trailing slash to paths without an extension
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond 
%{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule ^(.*)$ $1[L,R=301]

RewriteCond 
%{REQUEST_FILENAME} !-f
RewriteCond 
%{REQUEST_FILENAME} !-
RewriteRule ^(.*)$ /index.php/$1 [L] 


А где тут у вас строка доступа к шаблонам?
RewriteCond $1 ^(cats|about_us|factories|disco|farms|gas|hotels|indust|offices|test) [NC]
RewriteRule ^(.*)$ /index.php/$1 [L]

Я не стал это убирать, так как это написано в базовом руководстве, попробую сейчас сделать как у Вас.

Станислав - 29 Март 2011 04:22 P.M.

И мне смешно до слез ))

http://www.drupal.ru/book/
http://www.drupal.ru/book

http://www.drupal.ru/node/59789
http://www.drupal.ru/node/59789/

http://newsland.ru/news/detail/id/665658/cat/42
http://newsland.ru/news/detail/id/665658/cat/42/

Это личное горе владельцев этого сайта =)
У меня все в порядке: http://rkreal.biz/business_in_bulgaria

Профиль
 
 
Отправлено: 29 Март 2011 04:43 P.M.   [ Игнорировать ]   [ # 19 ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  891
Зарегистрирован  2008-01-07

код из расширения htacces generator))

# secure .htaccess file
<Files .htaccess>
 
order allow,deny
 deny from all
</Files>

# EE 404 page for missing pages
ErrorDocument 404 /index.php/{ee:404}

# Simple 404 for missing files
<FilesMatch "(\.jpe?g|gif|png|bmp|css|js|flv)$">
  
ErrorDocument 404 "File Not Found"
</FilesMatch>

# Although highly unlikely, your host may have +FollowSymLinks enabled at the root level, yet disallow its addition in .htaccess; in which case, adding +FollowSymLinks will break your setup (probably a 500 error), so just remove it, and your rules should work fine.
Options +FollowSymlinks
RewriteEngine On
RewriteBase 
/

# remove the www - Uncomment to activate
# RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
# RewriteRule ^(.*)$ http://%1/$1 [R=301,NC,L]

# Remove the trailing slash to paths without an extension
# Uncomment to activate
# RewriteCond %{REQUEST_URI} /$
# RewriteCond %{REQUEST_FILENAME} !-d
# RewriteRule ^(.+)/$ $1 [L,R=301]

# Remove index.php
# Uses the "include method"
# http://expressionengine.com/wiki/Remove_index.php_From_URLs/#Include_List_Method
RewriteCond %{QUERY_STRING} !^(ACT=.*)$ [NC]
RewriteCond 
%{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5})$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond 
%{REQUEST_FILENAME} !-d
RewriteCond 
%{REQUEST_URI} ^/({ee:template_groups}{ee:pages}members|P[0-9]{2,8}[NC]
RewriteRule 
(.*) /index.php/$1 [L] 
Профиль
 
 
Отправлено: 29 Март 2011 04:47 P.M.   [ Игнорировать ]   [ # 20 ]
Новичок
Rank
Всего сообщений:  61
Зарегистрирован  2010-10-05
budulay - 29 Март 2011 04:43 P.M.

лан пробуй примерно так))

RewriteEngine on

RewriteCond 
%{QUERY_STRING} !^(ACT=.*)$ [NC]
RewriteCond 
%{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5})$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond 
%{REQUEST_FILENAME} !-d

RewriteRule 
(.*) /index.php/$1 [L,R=301] 

Получаются страницы вида: http://site.ru/index.php/page

Профиль
 
 
Отправлено: 29 Март 2011 04:50 P.M.   [ Игнорировать ]   [ # 21 ]
Новичок
Rank
Всего сообщений:  61
Зарегистрирован  2010-10-05
Станислав - 29 Март 2011 04:22 P.M.
AddDefaultCharset utf8
Options 
+FollowSymLinks
ErrorDocument 404 http
://www.***.ru/404/

RewriteBase /
RewriteEngine On

# Add a trailing slash to paths without an extension
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond 
%{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule ^(.*)$ $1[L,R=301]

RewriteCond 
%{REQUEST_FILENAME} !-f
RewriteCond 
%{REQUEST_FILENAME} !-
RewriteRule ^(.*)$ /index.php/$1 [L] 

Если набирать адрес: http://site.ru/page/ - то все нормально, но

если набрать: http://site.ru/page - реврайтит на такой адрес: http://site.ru/var/www/vhosts/site.ru/httpdocs/bulgaria/ =)

Профиль
 
 
Отправлено: 29 Март 2011 04:53 P.M.   [ Игнорировать ]   [ # 22 ]
Новичок
Rank
Всего сообщений:  61
Зарегистрирован  2010-10-05
budulay - 29 Март 2011 04:43 P.M.

код из расширения htacces generator))

# secure .htaccess file
<Files .htaccess>
 
order allow,deny
 deny from all
</Files>

# EE 404 page for missing pages
ErrorDocument 404 /index.php/{ee:404}

# Simple 404 for missing files
<FilesMatch "(\.jpe?g|gif|png|bmp|css|js|flv)$">
  
ErrorDocument 404 "File Not Found"
</FilesMatch>

# Although highly unlikely, your host may have +FollowSymLinks enabled at the root level, yet disallow its addition in .htaccess; in which case, adding +FollowSymLinks will break your setup (probably a 500 error), so just remove it, and your rules should work fine.
Options +FollowSymlinks
RewriteEngine On
RewriteBase 
/

# remove the www - Uncomment to activate
# RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
# RewriteRule ^(.*)$ http://%1/$1 [R=301,NC,L]

# Remove the trailing slash to paths without an extension
# Uncomment to activate
# RewriteCond %{REQUEST_URI} /$
# RewriteCond %{REQUEST_FILENAME} !-d
# RewriteRule ^(.+)/$ $1 [L,R=301]

# Remove index.php
# Uses the "include method"
# http://expressionengine.com/wiki/Remove_index.php_From_URLs/#Include_List_Method
RewriteCond %{QUERY_STRING} !^(ACT=.*)$ [NC]
RewriteCond 
%{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5})$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond 
%{REQUEST_FILENAME} !-d
RewriteCond 
%{REQUEST_URI} ^/({ee:template_groups}{ee:pages}members|P[0-9]{2,8}[NC]
RewriteRule 
(.*) /index.php/$1 [L] 


Это выдает 404 страницу при запросе любой страницы, кроме главной )

Профиль
 
 
Отправлено: 29 Март 2011 05:00 P.M.   [ Игнорировать ]   [ # 23 ]
Новичок
Rank
Всего сообщений:  61
Зарегистрирован  2010-10-05
Станислав - 29 Март 2011 04:22 P.M.

Я скинул пример с работающего сайта. Это избавит от дублирования страниц в поисковике (чего мы, собсно, и добиваемся), т.к. у нас стоит редирект 301.

divined, вот полный код

AddDefaultCharset utf8
Options 
+FollowSymLinks
ErrorDocument 404 http
://www.***.ru/404/

RewriteBase /
RewriteEngine On

# Add a trailing slash to paths without an extension
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond 
%{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule ^(.*)$ $1[L,R=301]

RewriteCond 
%{REQUEST_FILENAME} !-f
RewriteCond 
%{REQUEST_FILENAME} !-
RewriteRule ^(.*)$ /index.php/$1 [L] 


Это заработало на первый взгляд, во всяком случае реврайтит.
Правда админка и добавление материалов не работают.

Нужно дописывать, т.е. исключить пути админки из этого правила.

Что-то типа того:

RewriteBase /
RewriteEngine On

# Add a trailing slash to paths without an extension
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond 
%{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ AND
RewriteCond %{REQUEST_URI} !(admin_address)$
RewriteRule ^(.*)$ $1[L,R=301]

RewriteCond 
%{REQUEST_FILENAME} !-f
RewriteCond 
%{REQUEST_FILENAME} !-
RewriteRule ^(.*)$ /index.php/$1 [L] 
Профиль
 
 
Отправлено: 29 Март 2011 05:05 P.M.   [ Игнорировать ]   [ # 24 ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  891
Зарегистрирован  2008-01-07
RewriteEngine on

RewriteCond 
%{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ /$1[R=301,L]

RewriteCond 
%{QUERY_STRING} !^(ACT=.*)$ [NC]
RewriteCond 
%{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5})$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond 
%{REQUEST_FILENAME} !-d
#RewriteCond %{REQUEST_URI} ^/({ee:template_groups}{ee:pages}members|P[0-9]{2,8}) [NC]
RewriteRule (.*) /index.php/$1 [L] 
Профиль
 
 
Отправлено: 29 Март 2011 11:23 P.M.   [ Игнорировать ]   [ # 25 ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  1423
Зарегистрирован  2007-12-27
divined - 29 Март 2011 04:39 P.M.

У меня все в порядке: http://rkreal.biz/business_in_bulgaria

Полагаю, тему можно закрыть

 Подпись 

ExpressionEngine - SEO-ориентированный движок

Профиль
 
 
Отправлено: 04 Апрель 2011 10:33 A.M.   [ Игнорировать ]   [ # 26 ]
Новичок
Rank
Всего сообщений:  61
Зарегистрирован  2010-10-05

Последний указанный мной вариант работает, за исключением того что он открывает даже несуществующие страницы сайта, и выдает странным образом информацию от других страниц и шаблонов =)
Рабочий вариант для меня:

RewriteEngine on

AddDefaultCharset utf8
Options 
+FollowSymLinks
ErrorDocument 404 http
://www.site.ru/404.php

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond 
%{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule ^(.*)$ $1[L,R=301]

RewriteCond 
%{REQUEST_FILENAME} !-f
RewriteCond 
%{REQUEST_FILENAME} !-
RewriteCond $^(shablon1|shablon2|P[0-9]{2-8}NC добавление этой строчки ограничивает выдачу только нашими шаблонами.

RewriteRule ^(.*)$ /index.php/$1 [L,QSA] 


И еще 1 нюанс: все пост формы нужно передавать на адрес со слэшэм в конце, иначе не будет работать.
Теперь тему можно закрыть, спасибо всем.

Профиль
 
 
   
2 из 2
2