我有以下问题。我的.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文件,我似乎无法找到解决方案。
答案 0 :(得分:1)
这样做:
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}
中的前导斜杠,最好不要使用锚^
,因为.htaccess位于/phpuserarea/
内。
此外,您不需要在目标中使用?%{QUERY_STRING}
,因为如果您的规则没有覆盖它,查询字符串会自动传递给目标。