【问题标题】:Rewrite rule only on top level仅在顶层重写规则
【发布时间】:2014-08-18 19:25:36
【问题描述】:

所以,我是第一次尝试重写规则。当然,我遇到了麻烦。

当我输入 www.mydomain.com/index.php?name=gallery 时,它会显示我的画廊。使用重写器,我可以将网址 www.mydomain.com/gallery 链接到该文件。代码如下:

RewriteEngine On
RewriteRule    ^([A-Za-z0-9-]+)/?$    index.php?name=$1    [NC,L]

我现在的问题是我无法访问任何子文件夹(例如 mydomain.com/admin),因为重写规则将我发送到 ...index.php?name=admin。

所以我的问题是,是否有任何方法可以使重写规则仅适用于我的根文件夹,或者是否有任何方法可以将特定文件夹排除在规则之外?

最好的问候!

【问题讨论】:

    标签: apache .htaccess mod-rewrite url-rewriting


    【解决方案1】:

    您需要一个条件来跳过重写中的现有文件和目录。

    RewriteEngine On
    
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([A-Z0-9-]+)/?$ index.php?name=$1 [NC,QSA,L]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多