Сделать правило htaccess применимо только к текущей папке

Я видел этот пример того, как изменить index.php на имя URL-адреса

RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-s RewriteRule ^([a-z0-9-_.]+)/?$ index.php?id=$1 [NC,L] RewriteRule ^([a-z0-9-_.]+)/([a-z0-9]+)/?$ index.php?id=$1&goto=$2 [NC,L] 

Этот файл .htaccess находится в www.site.com/map/

так что это происходит с www.site.com/map/index.php на www.site.com/map/country

он переписывает index.php на имя страны в URL-адресе, проблема в том, что когда я получаю каталог выше или подкаталог, например www.site.com/map/countryname/state он просто replace the index.php inside the state directory to the индексу .php inside the map directory как это решить? или как сделать это применимым только к текущему каталогу?

Вот структура сайта dir http://ufile.io/3dii7, поэтому, когда я перехожу на site/map/state/ это работает, но мне нужно имя страны в url для acess state dir, как этот site/map/country/state/

Related of "Сделать правило htaccess применимо только к текущей папке"

Имейте ваш .htaccess как это:

 RewriteEngine On # skip all rules below this for files and directories RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^([\w-.]+)/?$ index.php?id=$1 [L,QSA] RewriteCond %{DOCUMENT_ROOT}/site/map/$2 -f RewriteRule ^([\w-]+)/(.+)/?$ $2?id=$1&goto=$2 [L,QSA] RewriteCond %{DOCUMENT_ROOT}/site/map/$2/index.php -f RewriteRule ^([\w-.]+)/([a-z0-9]+)/?$ $2/index.php?id=$1&goto=$2 [NC,L,QSA] RewriteRule ^([\w-.]+)/([a-z0-9]+)/?$ index.php?id=$1&goto=$2 [NC,L,QSA]