重写文件夹不起作用

时间:2014-11-18 09:39:55

标签: apache .htaccess mod-rewrite rewrite

我的服务器上存有“SERVER_ROOT / app / 1.0.1 / index.php”中的应用程序。通过输入“example.com/index.php”来访问该应用程序,我使用重写来实现此目的。

我遇到的问题是我希望用户通过输入“example.com/image/ ”来访问“SERVER_ROOT / app / 1.0.1 / image / ”但我的重写没有任何工作时我编辑.htaccess文件。

这是我的.htaccess文件:

Options -MultiViews
RewriteEngine on
RewriteBase /app/1.0.1
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+) index.php/$1 [L]

RewriteRule ^image/$ app/1.0.1/image/ [NC,L]

RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

谢谢, 彼得

1 个答案:

答案 0 :(得分:0)

由于/image/目录实际上并不存在,它将被第一个将所有内容路由到index.php的规则所困。假设您的htaccess文件位于文档根目录中,则需要在路由规则上方添加规则并将其更改为:

RewriteRule ^image/(.*)$ image/$1 [L]

如果文档根目录中的htaccess文件不是,则需要将此规则添加到文档根目录中htaccess文件的顶部:

RewriteRule ^image/(.*)$ /app/1.0.1/image/$1 [L]