我在我的网络应用程序中做了很多更改,网址就是这样......
http://miwebapp.com/public/module/action
但是现在我改变了目录结构,公共文件夹现在是webroot文件夹,这意味着它不存在更多。
现在我的网址看了
http://miwebapp.com/module/action
我想创建一个Apache Rewrite来捕获公共单词附带的URL。
你试试这个..
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^public/(.+)$ /$i [NC,L]
RewriteRule ^.*$ /index.php [NC,L]
:D非常感谢:D
答案 0 :(得分:0)
删除第一个RewriteRule。所有现有文件(大小不为空+链接)和所有目录url都被RewriteCondition捕获,并且您将其设置为什么都不做并且是最后一条规则([L])。 所以一切都经历了这个唯一的规则。
顺便说一句:我不确定$ i是否确实存在,但我们用它来获得1美元。
编辑1:
是的,我也看到了! 但我得到了解决方案:RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^public/(.+)$ /$1 [NC,L]
RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /index.php [NC,L]
这应该避免在循环中将所有文件重写为index.php! (请注意,当您执行重定向时,.htaccess将使用新值重新处理,[L]只是停止重写当前请求)