簡體   English   中英

使用管理路由時更改默認index.php

[英]Change default index.php when using admin route

我目前正在執行一個項目,試圖為遇到的一個小問題找到解決方案后,這讓我有些頭疼。

目前,我的應用程序在收到的每個頁面請求上加載我的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]

編輯:要清除並使其可視化更多:

在這兩個文件中,我加載了一個新的Zend_Application(ZF1)

您是否嘗試過以下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]

這應該可以解決問題:

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]

為了簡化操作,您可以使用通用的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進行檢查,則可能希望看到此SOF線程

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM