重定向时,如果url路径中有文件夹,.htaccess文件会出现异常

时间:2018-01-03 16:57:03

标签: apache .htaccess mod-rewrite

我有一个app文件夹和一个public文件夹。在公共文件夹中是我的.htaccess,如下所示:

<IfModule mod_rewrite.c>
    Options -Multiviews
    RewriteEngine On
    RewriteBase /public
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule  ^(.+)$ index.php?url=$1 [QSA,L]
</IfModule>

我遇到的问题是,当我在http://localhost/public/images上调用url而没有尾部斜杠时,images文件夹已经存在。输入地址后,结果如下所示:http://localhost/public/images/?url=images

但是另一方面,如果我最后添加一个斜杠:http://localhost/public/images/当我进入时它将保持这样。具体来说,它只适用于我最后写一个斜杠。

仅当该搜索地址上有文件夹时才会出现此问题 谁有解决方案?

1 个答案:

答案 0 :(得分:1)

如果您希望将http://localhost/public/images视为http://localhost/public/images/,则应强制执行尾部斜杠。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)([^/])$        /$1$2/ [L,R=301]

另请参阅:.htaccess Rewrite to Force Trailing Slash at the end