2013-02-21 67 views
1

我在我的web应用程序中有这样的网址格式,如“www.mysitename.com/foldername/controller/method”。 并且所有请求的页面都会先被重定向到index.php,然后处理请求的页面。 但每当我去管理面板(www.mysitename.com/admin)url获取“管理员”作为文件夹名称,它显示了管理员的index.php,(这是正常的这种方式)然后与控制器名称methodname它不重定向通过管理文件夹的index.php。htaccess管理面板的重写规则

我希望这种模式下的网址“www.mysitename.com/admin/foldername/controller/method”,只要我访问“管理员”。以及所有 通过管理员请求的页面应首先重定向到admin文件夹中的index.php。 这里是我的htaccess的文件 -

Options -Indexes 
    RewriteEngine on 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-l 

    RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] 
+0

所以,用什么'/管理/'应该去'/ admin/index.php',和不是'/ index.php'? – BenM 2013-02-21 12:14:25

+0

是的。任何带有'/ admin'的东西都应该在admin目录下的index.php中。 – 2013-02-21 12:17:59

回答

6

你有一个.htaccess文件放在admin目录,或者只是一个在根目录?你需要在每个目录中有一个。

我只是在/htdocs/pro.htaccess/htdocs/pro/admin相同.htaccess测试这和它的工作完全按照自己的解释。在/htdocs/pro/.htaccess

Options -Indexes 
RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l 

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] 

联系htaccess的

根htaccess的在无论是在/htdocs/.htaccess/htdocs/pro/admin/.htaccess

Options -Indexes 
RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l 

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] 

单htaccess文件或/htdocs/pro/.htaccess

Options -Indexes 
RewriteEngine on 

# Change '/pro/' if directory is renamed 
RewriteBase /pro/ 

# Change the '/pro/' portion of the condition if directory is renamed 
RewriteCond %{REQUEST_URI} ^/pro/admin(.+)$ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l 

RewriteRule ^(.+)$ admin/index.php?url=$1 [QSA,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l 

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] 
+0

谢谢,这工作.. 但没有把htaccess文件到管理目录是否还有其他的东西可以工作为相同? – 2013-02-24 06:04:16

+0

回答更新为单个'.htaccess',其中包含管理员和根目录,将其放在根目录中。它会首先检查是否有与管理员uri匹配的内容,如果不是,则将假定root uri。 – sjdaws 2013-02-24 06:12:20

+0

我只是在我的本地主机上测试这个。但它重定向到本地服务器的index.php。我把这个项目放在** htdocs **的** pro **目录中。 – 2013-02-24 06:41:03