Проблема с htaccess.

(Ответов: 3, Просмотров: 1278)
  1. Опытный Аватар для masay
    • Регистрация: 11.10.2011
    • Сообщений: 320
    • Репутация: 147
    Приветствую участников форума!
    Возникла проблема с файлом htaccess на одном сайте:
    Сайт на Drupal. Нужно было сделать редирект c _site.ru на _www.site.ru, но после этого, если вставить урл например _site.ru/adout.html в строку браузера, или перейти по ссылке с какого-то сайта, то урл меняется на _www.site.ru/index.php?q=adout.html , а это не есть гуд.
    Как можно убрать с урла index.php?q= ?
    В htaccess есть строчка " RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]"- зачем она, я нашел тут _http://www.amiseo.ru/cms/htaccess-and-modrewrite-tricks-and-tips , но как её убрать, я хз.

    htaccess

    #
    # Apache/PHP/Drupal settings:
    #

    # Protect files and directories from prying eyes.
    <FilesMatch "\.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl|svn-base)$|^(code-style\.pl|Entries.*|Repository|Root|Tag|Template|all-wcprops|entries|format)$">
    Order allow,deny
    </FilesMatch>

    # Don't show directory listings for URLs which map to a directory.
    Options -Indexes

    # Follow symbolic links in this directory.


    # Make Drupal handle any 404 errors.
    ErrorDocument 404 /index.php

    # Force simple error message for requests for non-existent favicon.ico.
    <Files favicon.ico>
    # There is no end quote below, for compatibility with Apache 1.3.
    ErrorDocument 404 "The requested file favicon.ico was not found.
    </Files>

    # Set the default handler.
    DirectoryIndex index.php

    # Override PHP settings. More in sites/default/settings.php
    # but the following cannot be changed at runtime.

    # PHP 4, Apache 1.
    <IfModule mod_php4.c>
    php_value magic_quotes_gpc 0
    php_value register_globals 0
    php_value session.auto_start 0
    php_value mbstring.http_input pass
    php_value mbstring.http_output pass
    php_value mbstring.encoding_translation 0
    </IfModule>

    # PHP 4, Apache 2.
    <IfModule sapi_apache2.c>
    php_value magic_quotes_gpc 0
    php_value register_globals 0
    php_value session.auto_start 0
    php_value mbstring.http_input pass
    php_value mbstring.http_output pass
    php_value mbstring.encoding_translation 0
    </IfModule>

    # PHP 5, Apache 1 and 2.
    <IfModule mod_php5.c>
    php_value magic_quotes_gpc 0
    php_value register_globals 0
    php_value session.auto_start 0
    php_value mbstring.http_input pass
    php_value mbstring.http_output pass
    php_value mbstring.encoding_translation 0
    </IfModule>

    # Requires mod_expires to be enabled.
    <IfModule mod_expires.c>
    # Enable expirations.
    ExpiresActive On

    # Cache all files for 2 weeks after access (A).
    ExpiresDefault A1209600

    <FilesMatch \.php$>
    # Do not allow PHP scripts to be cached unless they explicitly send cache
    # headers themselves. Otherwise all scripts would have to overwrite the
    # headers set by mod_expires if they want another caching behavior. This may
    # fail if an error occurs early in the bootstrap process, and it may cause
    # problems if a non-Drupal PHP file is installed in a subdirectory.
    ExpiresActive Off
    </FilesMatch>
    </IfModule>

    # Various rewrite rules.
    <IfModule mod_rewrite.c>
    RewriteEngine on

    # If your site can be accessed both with and without the 'www.' prefix, you
    # can use one of the following settings to redirect users to your preferred
    # URL, either WITH or WITHOUT the 'www.' prefix. Choose ONLY one option:
    #
    # To redirect all users to access the site WITH the 'www.' prefix,
    # (http://example.com/... will be redirected to http://www.example.com/...)
    # adapt and uncomment the following:
    # RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
    # RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
    #
    # To redirect all users to access the site WITHOUT the 'www.' prefix,
    # (http://www.example.com/... will be redirected to http://example.com/...)
    # uncomment and adapt the following:
    # RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
    # RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]

    # Modify the RewriteBase if you are using Drupal in a subdirectory or in a
    # VirtualDocumentRoot and the rewrite rules are not working properly.
    # For example if your site is at http://example.com/drupal uncomment and
    # modify the following line:
    # RewriteBase /drupal
    #
    # If your site is running in a VirtualDocumentRoot at http://example.com/,
    # uncomment the following line:
    # RewriteBase /

    # Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !=/favicon.ico
    RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

    </IfModule>

    # $Id$
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^site\.ru$ [NC]
    RewriteRule ^(.*)$ http://www.site.ru/$1 [L,R=301]
    [свернуть]
    • 0
  2. Во все тяжкие Аватар для CuxpecT
    • Регистрация: 14.06.2011
    • Сообщений: 2,325
    • Репутация: 2030
    • Webmoney BL: ?
    попробуйте заменить на
    RewriteCond %{HTTP_HOST} ^site.ru
    RewriteRule ^(.*)$ http://www.site.ru/$1 [R=permanent,L]

    и убрать нахрен RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
    бох смм
    • 0
  3. Опытный Аватар для masay
    • Регистрация: 11.10.2011
    • Сообщений: 320
    • Репутация: 147
    Если убираю RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] , то "index.php?q=" с урла пропадает, но на всех страничках отображается текст главной.
    • 0
  4. Новичок
    • Регистрация: 28.06.2011
    • Сообщений: 19
    • Репутация: 0
    Я не программист, но иногда хватает пример другого рабочего сайта чтобы понять как сделать.
    Код делает из _www.site.ru -> _site.ru
    Вот часть кода
    PHP код:
    <IfModule mod_rewrite.c>
      
    Options +FollowSymLinks
      RewriteEngine On
      RewriteCond 
    %{HTTP_HOST} ^www\.site\.me$ [NC]
      
    RewriteRule ^(.*)$ http://site/$1 [R=301,L]
      
    RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond 
    %{REQUEST_FILENAME} !-l
      RewriteCond 
    %{REQUEST_FILENAME} !-d
      RewriteCond 
    %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
      
    RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
      
    RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]
    </
    IfModule
    • 0

Похожие темы

Темы Раздел Ответов Последний пост
Файл .htaccess
Прочее 19 11.02.2016 17:54
.htaccess
Хостинг и Серверы 11 13.02.2013 18:23
проблема с .htaccess в WordPress
WordPress 9 12.03.2012 16:41
Проблема с .htaccess
Софт, скрипты, сервисы 2 21.11.2011 15:10
Проблема с переводом субдомена на внутренний URL (.htaccess)
Web программирование 2 01.09.2011 17:06

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры