我目前正在开展一个项目,在尝试找到解决我碰到的一个小问题的解决方案后,让我头疼不已。
目前,我的应用程序在我获取的每个页面请求上加载我的index.php文件。在我的索引中,应用程序启动一些基本的东西,设置一些变量等。 好吧,我目前正在寻找的是我想让我的服务器加载一个不同的文件(例如admin.php)作为默认值。但是,只有当url子目录设置为http://www.mydomain.com/admin/
时才需要这样做所以服务器需要处理完全相同的每一件小事,但是当路由设置为/ admin /时,它需要自动加载admin.php而不是默认的index.php。
目前我的.htaccess文件看起来像这样
# mod-rewrite engine
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
编辑:要清理一下并将其可视化一点:
http://www.mydomain.com/admin/users/me/logs/ - > admin.php的
http://www.mydomain.com/admin/stackoverflow/questions - > admin.php - http://www.mydomain.com/stackoverflow/questions - >的index.php
在这两个文件中,我加载了一个新的Zend_Application(ZF1)
答案 0 :(得分:1)
您是否尝试过以下RewriteRule:
RewriteRule ^admin/?$ admin.php [L]
你的.htaccess看起来很喜欢:
# mod-rewrite engine
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^admin/?$ admin.php [L]
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
更新1
如果您按以下顺序尝试RewriteRules:
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*(admin).*$ admin.php [NC,L]
RewriteRule ^.*$ index.php [NC,L]
答案 1 :(得分:0)
这应该可以解决问题:
RewriteEngine On
# handle requests to /admin/
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_URI} ^/admin/$
RewriteRule ^.*$ admin.php [NC,L]
# handle all other requests
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
答案 2 :(得分:0)
为了解决问题,你可以使用一个有条件地包含文件的常见boostrap脚本。例如:
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ bootstrap.php [NC,L]
然后,在bootstrap.php中
<?php
if(USER_IS_ADMIN){
require('admin.php');
}else{
require('index.php');
}
如果您确实需要通过htaccess进行检查,您可能希望看到this SOF thread