2015-02-21 5 views
0

Сайта Я пытаюсь настроить имеет такую ​​структуруфайла .htaccess вызывает рекурсию

website.com 
---category1 
------subcategory1 
------subcategory2 
------subcategory3 
------subcategory4 
---category2 
------subcategory1 
------subcategory2 
------subcategory3 
------subcategory4 
---category3 
------subcategory1 
------subcategory2 
------subcategory3 
------subcategory4 
---category4 
------subcategory1 
------subcategory2 
------subcategory3 
------subcategory4 

Когда я посещаю example.com - это показывает мне все 4 категорий, как предполагалось. Когда я выбираю любую из категорий - страница перенаправляется на example.com/shop/index.php/index.php/index.php ... Корневая папка документа apache -/var/www/html/shop

Однако, когда я явно перехожу к example.com/categoryN, страница появляется. Та же проблема с подкатегориями.

Вот файл .htaccess

RewriteEngine On 
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR] 
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%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] 


RewriteBase/ //I put # in front of it, got no change 
writeRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 

RewriteCond %{REQUEST_URI} !^/index\.php 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule .* index.php [L] 

Как я могу сделать эту работу вещь? Спасибо.

+1

Итак, у вас есть '/ var/www/html/shop/index.php'? Я уверен, что проблема в том, что у вас есть RewriteCond% {REQUEST_URI}! ^/Index \ .php', который говорит, что uri не запускается с index.php. где, как вы, вероятно, хотите, если он не заканчивается index.php '!/index \ .php $' – chris85

+0

@ chris85, да, есть файл /var/www/html/shop/index.php. Я попытался заменить это условие на '!/Index \ .php $', но все равно получил ту же ошибку. – cre8eve

+1

Я скопировал ваш код на свой сервер, и у меня не было проблем, которые, как я думал, у вас будет. Я удалил '// я поставил # перед ним, не получил никаких изменений' и добавил' re' в 'writeRule. * - [E = HTTP_AUTHORIZATION:% {HTTP: Авторизация}]'. После этого работает так, как ожидалось, это весь ваш файл? У меня есть '/ public_html/sfo' с' index.php' и '.htaccess' внутри, а затем'/public_html/sfo/abc/'с' index.php'. Это ваша структура? – chris85

ответ

0

Проблема была сломана URL-адреса в коде.