У меня есть следующая проблема. Мой.htaccess выглядит так
RewriteEngine On
RewriteBase /phpuserarea/
RewriteCond %{REQUEST_URI} !^mod/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1?%{QUERY_STRING} [L]
ErrorDocument 404 /phpuserarea/404/index.php
Но всякий раз, когда я пытаюсь получить прямой доступ к чему-либо в каталоге mod
сервер отвечает на 404.
Другая проблема заключается в том, что помимо index.php я хочу разрешить прямой доступ, чтобы сказать testa.php и testb.php
Это мои файлы ajax, и я не могу найти решение.
спасибо
Имейте это так:
ErrorDocument 404 /phpuserarea/404/index.php
RewriteEngine On
RewriteBase /phpuserarea/
RewriteCond %{REQUEST_URI} !/mod/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [L]
Вам нужно привести косую черту в RewriteCond %{REQUEST_URI}
и лучше не использовать anchor ^
поскольку ваш.htaccess находится внутри /phpuserarea/
.
Также вам не нужно использовать ?%{QUERY_STRING}
в целевом объекте, так как строка запроса автоматически передается цели, если ваше правило не перезаписывает ее.