【问题标题】:htaccess redirection exceptionshtaccess 重定向异常
【发布时间】:2010-12-19 23:08:40
【问题描述】:

我有以下 .htaccess

RewriteEngine On

RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?type=Navigation&action=$1
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?type=Navigation&action=$1

Options All -Indexes

它将所有内容发送到根文件夹中的 index.php。但在我的结构中,我有类似的东西

/root
   /.htaccess
   /index.php
   /files
   /intranet

我想知道是否存在 RewriteRule 异常,因此当我键入 www.mysite.com/intranet 时,它会转到“intranet”文件夹而不通过 index.php 文件

谢谢!

【问题讨论】:

    标签: .htaccess mod-rewrite


    【解决方案1】:

    是的。我相信您只是在其他规则之前放置了一条您不想重写的 url,并指定不应该使用 - 重写它,如下所示:

    重写规则 ^intranet/.*$ - [L]

    【讨论】:

    • 可能需要[L]选项来阻止其他规则被处理。
    • 对不起,我的错误,实际上是我的服务器出了问题...你的代码有效:)
    【解决方案2】:
    RewriteCond %{REQUEST_URI} ^\/intranet\/?
    RewriteRule ^([a-zA-Z0-9_-]+)\/?$ index.php?type=Navigation&action=$1 [L]
    

    会成功的。

    【讨论】:

    • 感谢您的回答,它也很有效,但另一个人早些时候发布了答案......所以我会给他正确的答案。无论如何,你的工作完美。谢谢! :D
    • 没问题,但是添加其他 RewriteRule 恕我直言,这不是最佳做法。使用 RewriteCond(itions) 您可以向规则集添加额外的检查。您不必确保其他 RewriteRule 位于第一。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-19
    • 2014-08-11
    • 2021-02-08
    • 1970-01-01
    • 2013-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多