Php .htaccess在子文件夹中
我在这里读了很多关于这个的话题,但是出于某种原因,它对我不起作用,我完全困惑了。我知道,我把事情搞砸了,我就是想不出是什么 我有一个站点,Php .htaccess在子文件夹中,php,apache,.htaccess,Php,Apache,.htaccess,我在这里读了很多关于这个的话题,但是出于某种原因,它对我不起作用,我完全困惑了。我知道,我把事情搞砸了,我就是想不出是什么 我有一个站点,index.php正在调用路由器,并显示我想要的内容 我已经创建了一个“管理员”页面,我希望Web服务器对每个以/admin/开头的请求都使用/admin/index.php 以下是我尝试的: RewriteEngine ON RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME}
index.php
正在调用路由器,并显示我想要的内容
我已经创建了一个“管理员”页面,我希望Web服务器对每个以/admin/
开头的请求都使用/admin/index.php
以下是我尝试的:
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
上面写着前端
当我尝试http://localhost/admin/
它再次显示前端
如果我将管理行移动到第一条规则下面,如下所示:
RewriteRule ^(.*)$ index.php?action=$1 [L]
RewriteRule ^admin/(.*)$ admin/index.php?action=$2 [L,NC]
RewriteEngine On
# skip all files and directories from rewrite rules below
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^admin/(.*)$ admin/index.php?action=$1 [L,NC,QSA]
RewriteRule ^(.*)$ index.php?action=$1 [L,QSA]
然后http://localhost/admin/
说Admin
什么才是真正好的
但是如果我尝试http://localhost/admin/users
实际上没有什么,因为管理员的路由器应该处理这个问题,它说Frontend
我应该如何设置.htaccess
以在所有情况下使用/admin/index.php
,其中http://localhost/admin/
在URI中?如下所示:
RewriteRule ^(.*)$ index.php?action=$1 [L]
RewriteRule ^admin/(.*)$ admin/index.php?action=$2 [L,NC]
RewriteEngine On
# skip all files and directories from rewrite rules below
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^admin/(.*)$ admin/index.php?action=$1 [L,NC,QSA]
RewriteRule ^(.*)$ index.php?action=$1 [L,QSA]
第一个请求规则做什么?就是说,“如果文件/dir确实存在,那么就不要重写任何东西”?这意味着如果文件/dir确实存在,那么就忽略其他规则谢谢,它工作得很好,我会接受它,相反,$2
应该是$1
。