我已经建立了一个代码点火器站点,并且没有任何问题。现在,我需要将一些图像重写为codeigniter控制器/方法。
这是我的.htaccess文件,效果很好
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
RewriteCond $1 !^(index\.php|images|robots\.txt|css|docs|js|media|static|public)
RewriteRule ^(.*)$ /index.php?/$1 [L]
现在我需要类似的东西来将图像重写为codeigniter。 不重写不重定向
RewriteRule ^(media/somefolder/someimage.jpg)$ /some_controller/somemethod?param=value [L]
我添加了以下行(这不是codeigniter只是一个常规的php文件),仅用于测试以确保RewriteRule正常工作并且正常运行
RewriteRule ^(media/somefolder/someimage.jpg)$ public/myphpfile.php?ipath=$1 [L]
但是,如果我尝试以下任何一种操作,都会得到未找到codeigniter的页面,错误页面。
RewriteRule ^(media/somefolder/someimage.jpg)$ /some_controller/somemethod/?ipath=$1 [L]
或
RewriteRule ^(media/somefolder/someimage.jpg)$ index.php?c=some_controller&m=somemethod&ipath=$1 [L]
我在这里想念什么?
添加如下的media
规则:
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
RewriteRule ^(media/somefolder/someimage.jpg)$ /index.php?/some_controller/somemethod/?ipath=$1 [L]
RewriteCond $1 !^(index\.php|images|robots\.txt|css|docs|js|media|static|public)
RewriteRule ^(.*)$ /index.php?/$1 [L]
由于您已过滤掉以忽略此规则的media
目录:
RewriteCond $1 !^(index\.php|images|robots\.txt|css|docs|js|media|static|public)
为了重写控制器的media
路径而不是忽略它,请从其中删除media
规则:
RewriteCond $1 !^(index\.php|images|robots\.txt|css|docs|js|static|public)
添加如下的media
规则:
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
# removed the media form below rule
RewriteCond $1 !^(index\.php|images|robots\.txt|css|docs|js|static|public)
RewriteRule ^(media/somefolder/someimage.jpg)$ /index.php?/some_controller/somemethod/?ipath=$1 [L]
RewriteRule ^(.*)$ /index.php?/$1 [L]