2015-09-18 4 views
2

В моей корневой .htaccess У меня естьHtaccess переписывает применение ко всем, не предназначен

Options +FollowSymlinks 
Options -Indexes 
RewriteEngine on 
RewriteCond %{REQUEST_URI} !^/dashboard/ 
RewriteCond %{HTTPS} =on 
RewriteCond %{HTTP_HOST} ^dashboard.domain.com 
RewriteRule ^(.*)$ /dashboard/$1 [NC,L,NS] 

В .htaccess папки приборной доски у меня есть ..

RewriteRule ^go/([^/.]+)/?$ index.php?flag=$1 [L] 

Когда я иду в dashboard.domain. com/login это вызывает ошибку. Когда я иду на dashboard.domain.com/go/a, он работает.

Когда я # выписываю правило перезаписи панели управления, происходит обратное,/login работает, но тогда/go/$ 1 нет. Что мне не хватает, чтобы заставить/go переписать только, когда обнаружено/go?

EDIT (остальная часть корня HTAccess)

AddHandler application/x-httpd-php54 .php 

Options +FollowSymlinks 
Options -Indexes 
RewriteEngine on 

RewriteCond %{SERVER_PORT} ^80$ 
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] 

RewriteCond %{REQUEST_URI} !^/rocket/ 
RewriteCond %{HTTPS} =on 
RewriteCond %{HTTP_HOST} ^launch.domain.com 
RewriteRule ^(.*)$ /rocket/$1 [NC,L,NS] 

RewriteCond %{REQUEST_URI} !^/dashboard/ 
RewriteCond %{HTTPS} =on 
RewriteCond %{HTTP_HOST} ^dashboard.domain.com 
RewriteRule ^(.*)$ /dashboard/$1 [NC,L,NS] 

RewriteCond %{REQUEST_URI} !^/img/ 
RewriteCond %{HTTPS} =on 
RewriteCond %{HTTP_HOST} ^img.domain.com 
RewriteRule ^(.*)$ /img/$1 [NC,L,NS] 

#RewriteCond %{HTTPS} off 
#RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

#RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com [NC] 
#RewriteCond %{HTTP_HOST} !launch.domain.com [NC] 
#RewriteRule ^(.*)$ https://launch.domain.com/$1 [R=301,L,QSA] 

Redirect 301 /sneakpeek/

RewriteRule ^error/([^/]+) error/failure.php?code=$1 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 

<FilesMatch "\.(ttf|otf|eot|woff|jpg|png|jpeg|gif|js|json|html|css|php)$"> 
    <IfModule mod_headers.c> 
    Header set Access-Control-Allow-Origin "*" 
    </IfModule> 
</FilesMatch> 

ErrorDocument 400 /error/400 
ErrorDocument 401 /error/401 
ErrorDocument 403 /error/403 
ErrorDocument 404 /error/404 
ErrorDocument 500 /error/500 
+0

@anubhava «Запрошенный URL/панель/Логин не был найден на этом сервере Кроме того, была обнаружена 404 не найдена ошибка при попытке использовать ErrorDocument для обработки запроса ». Я отредактирую сообщение, чтобы включить остальные. –

ответ

2

Правила ниже вашего правила приборной панели может быть влияют на ваши правила и изменения %{REQUEST_URI} переменных. Вы можете использовать переменную THE_REQUEST и повторно проверить его после того, как очистить кэш браузера:.

RewriteCond %{THE_REQUEST} !/(dashboard|error)/ 
RewriteCond %{HTTPS} =on 
RewriteCond %{HTTP_HOST} =dashboard.domain.com 
RewriteRule ^(.*)$ dashboard/$1 [NC,L] 
+0

К сожалению, когда я меняю свой код и очищаю свой кеш, он перенаправляется на 500 ошибок. Это происходит с панелью и без нее .htaccess переписывается с комментариями. Я попытался изменить код, который вы предоставили https, так как у меня есть подстановочный SSL-сертификат, но тот же результат. –

+0

Такая же ошибка. Журналы ошибок показывают, что куча файла не существует для «public_html/dashboard/login». Сайт - dashboard.rocketlobby.com. Я вернусь к исходным правилам перезаписи и не имею/re rerrite прокомментировал, и это ошибка 404. –

+0

С помощью этого правила 'https: // dashboard.rocketlobby.com/login' будет перенаправляться на' https: // dashboard.rocketlobby.com/dashboard/login'. Даже когда я вхожу в «https: // dashboard.rocketlobby.com/dashboard/login» прямо в моем браузере, это приводит к 404 – anubhava

Смежные вопросы