2014-02-07 2 views
1

Я признаю, что мой .htaccess/regex - самая слабая часть моей игры в разработке. Это проблема, особенно сегодня.Корневой сайт .htaccess вмешивается в WordPress

У меня есть корневой сайт клиента в ASP, доступ на public_html применяется следующим образом:

RewriteEngine on 
RewriteRule ^$ index.php [L] 
RewriteCond $1 !^(index\.php|robots\.txt|favicon\.ico|xmlpdf\.cfm|public|dynamic|googlead5e4138365a1f11.html|sitemap.xml) 
RewriteRule ^(.*)$ index.php/$1 [L] 
Options -Indexes 

Они хотят установить WordPress в/public_html/инвентарь. Очевидно, что рекурсивный характер .htaccess вызывает огромные конфликты. Проблема в том, что я не совсем уверен, как разрешить конфликт такого рода. Не то, чтобы кто-то здесь нужен обзор, но WP .htaccess по умолчанию:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

Я надеюсь, что кто-то может сказать мне, как отказаться от ледяной хватки корневой папки на вложенную папку WordPress.

Спасибо, пучки.

ответ

1

Это должно быть корневой .htaccess:

Options -Indexes 
RewriteEngine on 

# skip WP dir 
RewriteRule ^inventory(/|$) - [L,NC] 

RewriteRule ^$ index.php [L] 

RewriteCond $1 !^(index\.php|robots\.txt|favicon\.ico|xmlpdf\.cfm|public|dynamic|googlead5e4138365a1f11.html|sitemap.xml) 
RewriteRule ^(.*)$ index.php/$1 [L] 

Это должно быть WP /inventory/.htaccess:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /inventory/ 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . index.php [L] 
</IfModule> 
+1

Awesome, спасибо. Это будет полезно в будущем. Не могли бы вы объяснить, как работает RewriteRule^инвентарь (/ | $) - [L, NC]? Это похоже на начало - инвентарь - строка слэш - конец - нечувствительность к последнему регистру. Я понятия не имею, почему это приводит к тому, что каталог инвентаризации пропускается при обработке. В принципе, у меня нет подсказки, но мне бы очень понравилось :) – Imperative

+0

Я уверен. 'NC' для совпадения в случае игнорирования. Regex is '^ inventory (/ | $)', что означает соответствие URI, начинающееся с 'inventory', за которым следует'/'ИЛИ конец ввода. Таким образом, он будет соответствовать любому из '/ inventory,/inventory /,/inventory/anything,/INVENTORY' и т. Д.' -' для принятия каких-либо действий, если найдено какое-либо из этих совпадений. – anubhava

+0

Итак, вы в основном писали правило без каких-либо условий, и это не вызвало никаких действий? – Imperative

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