为什么.htaccess mod_rewrite没有显示真实目录

穆罕默德·萨贝里(Mohammad Saberi)

我已经在.htaccess文件中编写了以下代码。

RewriteEngine On
Options +FollowSymLinks

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

RewriteRule ^([^/\.]+)/([^/\.]+)/?$ index.php?p=$1&id=$2 [NC,QSA,L]
RewriteRule ^([^/\.]+)/?$ index.php?p=$1 [NC,QSA,L]

我也已经在admin目录中为我的网站的管理员创建了一个控制面板问题是,当我想从该地址进入控制面板时www.site.com/admin,它没有显示我真正想要的。之后,URL更改为www.site.com/admin/?p=admin
问题是什么 ?

贾斯汀·欧曼(Justin Iurman)

条件仅适用于以下规则。
即使第二条规则是现有目录或文件,也将对其进行评估。

如果您的2条规则必须同时满足这两个条件,则有2种可能性。

复制您的条件:

RewriteEngine On
Options +FollowSymLinks

# this rule is evaluated if not a directory AND not a file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/\.]+)/([^/\.]+)/?$ index.php?p=$1&id=$2 [NC,QSA,L]

# this rule is evaluated if not a directory AND not a file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/\.]+)/?$ index.php?p=$1 [NC,QSA,L]

或者if/else,如果是目录/文件,则不执行任何操作来模拟条件

RewriteEngine On
Options +FollowSymLinks

# if file or directory, leave (do nothing)
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . - [L]

# if we reach here, means it's not a file or directory. So rules can be evaluated
RewriteRule ^([^/\.]+)/([^/\.]+)/?$ index.php?p=$1&id=$2 [NC,QSA,L]
RewriteRule ^([^/\.]+)/?$ index.php?p=$1 [NC,QSA,L]


另外,这并不是那么重要,但是.当您放入方括号时不必逃脱([^/\.]+)可以([^/.]+)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

.htaccess mod_rewrite具有3个目录级别

来自分类Dev

带有mod_rewrite的HTaccess 404

来自分类Dev

带有mod_rewrite的HTaccess 404

来自分类Dev

htaccess mod_rewrite重定向到目录,而不显示在url上

来自分类Dev

为什么.htaccess mod重写规则未激活?

来自分类Dev

htaccess mod_rewrite合并

来自分类Dev

.htaccess mod_rewrite说明

来自分类Dev

使用mod_rewrite删除htaccess中的目录

来自分类Dev

从域到子目录的高级.htaccess mod_rewrite

来自分类Dev

.htaccess中有多个mod_rewrite规则?

来自分类Dev

为什么scp没有显示真实的上传速度?

来自分类Dev

Apache .htaccess mod_rewrite多个RewriteRules

来自分类Dev

规则的mod_rewrite和.htaccess异常

来自分类Dev

Apache 2.4 mod_rewrite和htaccess

来自分类Dev

在htaccess中反向mod_rewrite

来自分类Dev

htaccess:mod_rewrite(某些文件的例外)

来自分类Dev

从子程序mod_rewrite .htaccess

来自分类Dev

.htaccess MOD_REWRITE子域

来自分类Dev

在htaccess中反向mod_rewrite

来自分类Dev

mod_rewrite不读取htaccess

来自分类Dev

.htaccess mod_rewrite给500错误

来自分类Dev

.htaccess的Mod_Rewrite无法正常工作

来自分类Dev

.htaccess根已用mod_rewrite更改

来自分类Dev

.htaccess mod_rewrite在Wordpress中的顺序

来自分类Dev

Apache 2.4 mod_rewrite和htaccess

来自分类Dev

.htaccess mod_rewrite 更改链接 URL

来自分类Dev

.htaccess 中的 mod_rewrite 规则

来自分类Dev

(| /)$与mod_rewrite有什么关系?

来自分类Dev

为什么我的 mod_proxy 标志在 htaccess 中停止工作?