2014-01-27 2 views
0

Извините, если раньше был дан ответ. Я искал везде, и я просто не могу найти правильное решение.Один htaccess, перезаписывающий другой

Я использую модуль OpenCart перезаписи для лучшего URLs:

RewriteBase/

RewriteRule sitemap.xml /index.php?route=feed/google_sitemap 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^?]*) /index.php?_route_=$1 [L,QSA] 

Я также получил каталог (Emailer), который я хотел бы получить доступ в качестве стандарта. Я знаю, что 2 строки RewriteCond, указанные выше, позволят любому директорию и/или почтовому устройству работать нормально.

То есть, пока я пароль не защитить папку Emailer внутри Cpanel, он затем создает следующий файл .htaccess в папке Emailer:

AuthType Basic 
AuthName "emailer" 
AuthUserFile "/home/mywebsit/.htpasswds/public_html/emailer/passwd" 
require valid-user 

Тогда я вдруг получаю страница не найдена ошибка. Если я удалю этот новый .htaccess, он отлично работает. Я попытался добавить строку

RewriteEngine off 

в нее, но она все еще не хочет знать.

Что я делаю неправильно? Я решил это раньше и в конце концов удалил оригинальный файл .htaccess, поскольку я тратил слишком много времени, пытаясь заставить его работать.

+0

Проверьте Apache Error.log и посмотреть, если вы получаете любую ошибку там. – anubhava

+0

В журнале ошибок ничего нет, кроме того, что не найдена страница 401, не найденная. – jimbeeer

+0

Это 401 или 404? – anubhava

ответ

0

Вы можете попытаться перевернуть механизм перезаписи на в папке почтового отправления. Включение этого параметра приведет к тому, что любые правила в htaccess почтового клиента будут иметь приоритет над правилами в родительской папке. Поскольку не существуют какие-либо правил в файле Emailer HTAccess, никаких правил не получить применяются:

RewriteEngine On 

никаких других правил перезаписи.

+0

Это не имеет никакого эффекта. – jimbeeer

0

Попробуйте этот код в DocumentRoot/.htaccess:

RewriteEngine On 
RewriteBase/

RewriteRule ^sitemap\.xml /index.php?route=feed/google_sitemap [L,QSA] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !/emailer/ [NC] 
RewriteRule ^(.+)$ /index.php?_route_=$1 [L,QSA] 
+0

Сделал это, и теоретически он должен работать. Но это не так. Кажется, это фактическая строка RewriteRule, которая конфликтует с /emailer/.htaccess. Как я уже сказал в комментариях выше, если я прокомментирую правило,/emailer работает отлично, но тогда он не корректирует URL-адреса. – jimbeeer

+0

Каковы текущие разрешения на ваш файл '/ home/mywebsit/.htpasswds/public_html/emailer/passwd'? – anubhava

+0

Разрешение для этого файла: 0644 – jimbeeer

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