由于htaccess而难以访问子目录文件

时间:2015-10-26 17:33:08

标签: php .htaccess web

这是我的.htaccess代码

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-s
    RewriteRule ^(.*)$ api.php?rquest=$1 [QSA,NC,L]

    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^(.*)$ api.php [QSA,NC,L]

    RewriteCond %{REQUEST_FILENAME} -s
    RewriteRule ^(.*)$ api.php [QSA,NC,L]

    RewriteCond %{REQUEST_URI} !^/images/   

</IfModule>

我的目录结构:

Directory structure

我的问题是,我可以通过拨打/users/getData等来访问我的api.php。但是,如果我选择images/someImage.jpg,则不允许。

1 个答案:

答案 0 :(得分:0)

尝试这个简单的重写规则

RewriteBase /your web directory

RewriteEngine On

RewriteRule ^([a-zA-Z0-9_-]+)$ api.php?rquest=$1

RewriteRule ^([a-zA-Z0-9_-]+)/$ api.php?rquest=$1

以下是代码的细分

RewriteBase / #enter your directory root here

RewriteEngine On

以下重写规则将重定向,例如www.example.com/home到example.com/api.php?rquest=$1

RewriteRule ^([a-zA-Z0-9_-]+)$ api.php?rquest=$1

以下将重定向,例如www.example / home /到example.com/api.php?rquest=$1。注意/ after / home

RewriteRule ^([a-zA-Z0-9_-]+)/$ api.php?rquest=$1

以上代码行排除了将www.example.com/images/someimages.jpg重定向到www.example.com /

的规则

所以这将暂时有用。