【问题标题】:separate admin and root rewrite rules (mod_rewrite)单独的管理员和根重写规则 (mod_rewrite)
【发布时间】:2012-08-02 06:46:10
【问题描述】:

这是我当前的 htaccess,我使用 mod_rewrite

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !^/?admin/.+$ index.php [L]
RewriteRule ^admin/(.*)$ admin/index.php [L]

我需要重写对admin/index.php 的管理请求
以及对/index.php 的其他请求。
例如:
localhost/example/index.php
localhost/foo/bar/index.php
localhost/admin/login/admin/index.php
localhost/admin/pages/admin/index.php

上述规则工作正常,但它也适用于 css 样式或 javascripts。这意味着admin/js/jquery.js 也将重写为admin/index.php(文件路径存在)。我错过了什么?

【问题讨论】:

    标签: apache mod-rewrite


    【解决方案1】:

    您需要复制 2 个条件,它们仅适用于下一个 RewriteRule

    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule !^/?admin/.+$ index.php [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^admin/(.*)$ admin/index.php [L]
    

    【讨论】:

    • admin/foo工作但在admin/foo/bar/...上仍然存在同样的问题
    猜你喜欢
    • 1970-01-01
    • 2012-07-22
    • 2010-12-25
    • 2013-09-08
    • 1970-01-01
    • 1970-01-01
    • 2012-07-28
    • 2011-02-23
    相关资源
    最近更新 更多