子文件夹中的.htaccess

时间:2016-02-08 10:01:03

标签: php apache .htaccess

我在这里读了很多关于这个的话题,但由于某种原因它不适合我,我完全糊涂了。我知道,我搞砸了一些东西,我只是无法想象它。

我有一个网站,index.php正在呼叫路由器,并显示我想要的内容。

我创建了一个管理员'页面,我希望网络服务器对/admin/index.php

开头的每个请求使用/admin/

以下是我的尝试:

RewriteEngine ON
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^admin/(.*)$ admin/index.php?action=$2   [L,NC]
RewriteRule ^(.*)$ index.php?action=$1 [L]

我回复了来自index.php的一些信息,以查看处理我请求的信息。

如果我正在撰写http://localhost,则说Frontend

当我尝试http://localhost/admin/时,它再次显示Frontend

如果我要移动管理员'第一条规则下面的行如下:

RewriteRule ^(.*)$ index.php?action=$1 [L]
RewriteRule ^admin/(.*)$ admin/index.php?action=$2   [L,NC]

然后http://localhost/admin/Admin实际上什么是好的!

但是,如果我尝试http://localhost/admin/users实际上不存在的内容,因为管理员的路由器应该处理它,它会显示Frontend

在所有情况下,我应该如何设置.htaccess使用/admin/index.php,其中URI中为http://localhost/admin/

1 个答案:

答案 0 :(得分:4)

有这样的话:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void deal(void);
void check(void);

int cases[22];
int prizes[22] = {1,2,3,4,5,6,8,10,15,20,25,35,50,65,85,100,105,135,165,200,250};

int main()
{
  srand(time(NULL));

  int a = 0;
  deal();

  for(a = 0 ; a < 22 ; a++)
    printf("%d \n", cases[a]);

  return 0;
}

//this is a neat algorithm for re-ordering an array without duplication
void scramble(int* array, int length)
{
  int i;
  int r;
  int temp;

  for(i = 0 ; i < length ; i++)
  {
    //swap this element with a random one to it's left (or itself)
    r = rand() % (i + 1);

    temp = array[r];
    array[r] = array[i];
    array[i] = temp;
  }
}

void deal(void)
{
  int r;
  int n = 1;

  //copy the prizes across directly
  for(n = 0 ; n < 22 ; n++)
    cases[n] = prizes[n];

  scramble(cases, 22);
}