如何单独在 htaccess 中的管理文件夹上

Posted

技术标签:

【中文标题】如何单独在 htaccess 中的管理文件夹上【英文标题】:how to sepratly on admin folder in htaccess 【发布时间】:2015-02-08 16:02:03 【问题描述】:

朋友们,我是 php 开发者,我在示例中自定义了 url

发件人:http://example.net/page.php?post_id=contact/

收件人:http://example.net/contact/

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase / 
#RewriteBase use only home/phtml/www/ this kind of path
RewriteRule ^([a-zA-Z-/]+)$ page.php?post_id=$1 [QSA]
RewriteRule ^([a-zA-Z-/]+)/$ page.php?post_id=$1 [QSA]
</IfModule>

它在上面的 htaccess 代码上工作正常,但它有一些问题。什么是用于控制面板目的的“admin”文件夹。其中如何正确重定向到http://example.net/admin/ htaccess 中的任何选项?

我的错误是:http://example.net/page.php?post_id=admin/

如何解决?

【问题讨论】:

【参考方案1】:

您可以跳过重写规则中的所有目录。使用:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase / 

# If the request is not for a valid directory
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^([a-zA-Z/-]+)/?$ page.php?post_id=$1 [L,QSA]

</IfModule>
您还应该在字符类中的第一个或最后一个位置保留未转义的连字符。 我使用可选的尾随斜杠将您的 2 条规则合并为一条。

【讨论】:

我需要多个 url 自定义示例 RewriteRule ^([a-zA-Z/-]+)/?$ admin/index.php?post_id=$1 [L,QSA] 对不起,多个 url 自定义示例 RewriteRule 是什么意思 如果我需要另一个 php 文件自定义示例:RewriteRule ^([a-zA-Z/-]+)/?$ category.php?post_id=$1 [L,QSA] 这行不通,因为它与第一条规则的模式相同。你可以有不同的路径,比如RewriteRule ^cat/([a-zA-Z/-]+)/?$ category.php?post_id=$1 [L,QSA] 这在我们的 htaccess 中不起作用^cat/([a-zA-Z/-]+)/?$ category.php?post_id=$1 [L,QSA]

以上是关于如何单独在 htaccess 中的管理文件夹上的主要内容,如果未能解决你的问题,请参考以下文章

在子文件夹中维护单独的.htaccess文件

忽略 GeoIP Htaccess Rewrite 中的 magento 管理目录

htaccess 中的访问控制允许来源

CodeIgniter 使用 .htaccess 保护管理控制器

如何在计算机上本地创建和编辑 .htaccess 并查看更改

允许使用 htaccess 文件进行管理员登录的多个 IP 地址 [重复]