管理面板的htaccess重写规则

时间:2013-02-21 12:09:26

标签: php .htaccess url-rewriting url-routing

我的网络应用程序中的网址格式就像“ www.mysitename.com/foldername/controller/method ”。 并且所有请求的页面首先在根文件夹上重定向到index.php,然后处理请求的页面。 但每当我进入管理面板( www.mysitename.com/admin )时,url会将“admin”作为文件夹名称,它会显示admin的index.php(这是正常的)这样)然后使用 controllername methodname ,它不会重定向到admin文件夹的index.php。

每当我访问“admin”时,我都希望这个模式中的网址“ 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]

1 个答案:

答案 0 :(得分:6)

您的管理目录中是否有.htaccess个文件,或者根目录中只有一个文件?你需要在每个目录中都有一个。

我刚刚使用.htaccess中的/htdocs/pro.htaccess中的/htdocs/pro/admin进行了测试,结果与您解释的相同。

/htdocs/pro/.htaccess

中的root htaccess
Options -Indexes 
RewriteEngine on

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

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

/htdocs/pro/admin/.htaccess

中的管理员htaccess
Options -Indexes 
RewriteEngine on

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

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

{h {{}}或/htdocs/.htaccess

中的单个htaccess文件
/htdocs/pro/.htaccess