【问题标题】:How to exclude base url from some rewrite rule in htaccess?如何从 htaccess 中的某些重写规则中排除基本 url?
【发布时间】:2015-09-19 19:55:06
【问题描述】:

大家好,我在 .htaccess 文件中有一个重写规则

RewriteRule  ^([a-zA-Z0-9\-\_]+)?$  product.php?product=$1    [NC,L]

当我访问 www.domain.com 时,它会应用上述规则并重定向到 product.php,而当我访问 www.domain.com/index.php 时,它可以正常工作。我在哪里做错了。谢谢

【问题讨论】:

    标签: php regex apache .htaccess mod-rewrite


    【解决方案1】:

    在您的正则表达式中删除?,这使得整个模式成为可选并从此规则中排除目录:

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule  ^([\w-]+)/?$ product.php?product=$1 [QSA,L]
    

    【讨论】:

      【解决方案2】:
      <IfModule mod_rewrite.c>
      Options -Indexes
      
      RewriteEngine On
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.*)$ /your_project_folder_name/index.php/$1 [L]
      </IfModule>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-03
        • 2010-12-23
        • 2010-12-22
        • 1970-01-01
        相关资源
        最近更新 更多