如何单独在 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 中的管理文件夹上的主要内容,如果未能解决你的问题,请参考以下文章
忽略 GeoIP Htaccess Rewrite 中的 magento 管理目录
CodeIgniter 使用 .htaccess 保护管理控制器