2014-09-18 4 views
1

У меня есть код ниже в моем файле .htaccess, все это работает отлично.Проблемы с переписыванием папки с Mod Rewrite

RewriteEngine On 

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

RewriteRule ^(.*),(.*)$ $2.php?rewrite_params=$1&page_url=$2 

RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR] 
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR] 
RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR] 
RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2}) 
RewriteRule ^(.*)$ index.php [F,L] 

RewriteRule ^stores/([0-9a-z.-]+)/?$ shop.php?shop_id=$1 [L,QSA,NC] 
RewriteRule ^stores/([0-9a-z.-]+)/ajax_files/watch_item\.php$ ajax_files/watch_item.php [L,QSA,NC] 
RewriteRule ^stores/([0-9a-z.-]+)/ajax_files/save_field\.php$ ajax_files/save_field.php [L,QSA,NC] 
RewriteRule ^stores/([0-9a-z.-]+)/images/form-cb-icons\.png$ images/form-cb-icons.png [L,NC] 

RewriteRule ^group-break/([0-9]+)/[0-9a-z.-]+/?$ group_break.php?cb_id=$1 [L,NC] 
RewriteRule ^group-breaks/([a-z]+)-[a-z-]+/?$ group_breaks.php?tab=$1 [L,NC] 

Однако я пытаюсь добавить новое правило в нижней части, которая так:

RewriteRule ^billing/client/login/?$ login.php [L,NC] 

Однако это не появляется на работе. Не уверен, имеет ли это значение или нет, но в каталоге billing также есть файл .htaccess, который может быть перезаписан? Содержимое этого файла ниже:

<Files ~ "\.(pdt)$"> 
    order deny,allow 
    deny from all 
</Files> 

# Protect against Clickjacking 
#Header append X-Frame-Options "SAMEORIGIN" 

RewriteEngine on 

# Force HTTPS 
#RewriteCond %{HTTPS} !=on 
#RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [R=307,NE,L] 

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

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

Я хотел поместить свой код в файле корневой .htaccess как один внутри billing НАПРАВЛ для другого программного обеспечения, которое может получить перезаписаны.

Можно ли это сделать?

ответ

1

Да, ваша догадка правильная. Если /billing/.htaccess существует с некоторыми правилами перезаписи, то вам нужно добавить это правило в /billing/.htaccess файле:

<Files ~ "\.(pdt)$"> 
    order deny,allow 
    deny from all 
</Files> 

# Protect against Clickjacking 
#Header append X-Frame-Options "SAMEORIGIN" 

RewriteEngine on 

# Force HTTPS 
#RewriteCond %{HTTPS} !=on 
#RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [R=307,NE,L] 

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

RewriteRule ^client/login/?$ /login.php [L,NC] 

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

ли я просто добавить в нижней строке? Потому что это тоже не сработало. :( – Brett

+0

Вы получаете 404 для 'http: // domain.com/billing/client/login /'? Является ли '/ billing/client /' реальным каталогом? – anubhava

+0

No 404, просто видя стандартную страницу, как будто это wasn 't быть перенаправленным (т.е. страница входа в систему для биллингового программного обеспечения). 'billing' - это реальный каталог, но' billing/client/'не является. – Brett

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