2017-02-16 15 views
1

как я говорю апачский модулю перезаписи, чтобы пропустить перезапись определенного пути, в настоящее время у меня есть следующий код в .htaccessApache модуль переписан пропустить пути

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !^(ampache)$ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [L] 

конкретно, я хочу, чтобы путь, начиная с ampache пройти, не переписываясь. приведенный выше код не выполняет то, что мне нужно.

ответ

1

Вместо REQUEST_FILENAME использовать REQUEST_URI, потому что REQUEST_FILENAME соответствует полной траектории файловой системы.

Вы можете использовать это исправленное правило:

RewriteEngine On 

RewriteCond %{REQUEST_URI} !^/ampache(/.*)?$ [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule^index.php [L] 

Или даже это отрицание шаблона будет работать:

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

, что я хочу, чтобы не перенаправить на index.php, когда путь = 'ampache' –

+0

да, это то, что делает это правило. Если URI начинается с '/ ampache', то выше правило не будет отправляться на' index.php' – anubhava

+1

@anabhava спасибо, это сработало. –