【问题标题】:can't access specific link after mod_rewritemod_rewrite 后无法访问特定链接
【发布时间】:2016-01-19 11:56:08
【问题描述】:

您好,我做了一些 mod_rewrite,现在我在访问某些链接时遇到了一些问题。为了更好地理解,我将在这里通过我的 mod_rewrite 和我想要访问的链接,但我不能,因为它会将我重定向到我重写的那个。我要访问的链接是 agro.websoftit.ro/admin/app/add_categoie.php 这是我的模组重写:
如何在不将我重定向到 shop_det.php 的情况下访问此链接?

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/([^/]*)/([^/]*)\.php$ /shop_det.php?category=$1&subcat=$2&produs=$3 [L]

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/([^/]*)\.php$ /produse.php?category=$1&subcat=$2 [L]

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^-]*)\.php$ /subcategories.php?category=$1 [L]


RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)$ /template_static.php?page=$1 [L]

【问题讨论】:

    标签: php apache mod-rewrite url-rewriting


    【解决方案1】:

    RewriteRules 按顺序应用。因此,在过去,我排除特定 URL 的一种方法是在列表开头匹配该 URL,并使用 [L] 标志停止处理该请求的任何更多规则。

    例如:

    RewriteEngine On
    RewriteRule ^/admin/app/add_categoie.php - [L]
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([^/]*)/([^/]*)/([^/]*)\.php$ /shop_det.php?category=$1&subcat=$2&produs=$3 [L]
    

    另外,您不需要一直打开 RewriteEngine。可以在规则列表的顶部执行一次。

    【讨论】:

    • 我在我的 htaccess 中添加了该行,但它仍然将我重定向到 shop_det.php 而不是 add_categorie.php
    • 您能否发布您的整个 .htaccess 文件?
    猜你喜欢
    • 2011-07-06
    • 1970-01-01
    • 2011-06-19
    • 1970-01-01
    • 2023-03-06
    • 2018-05-24
    • 1970-01-01
    • 2014-03-17
    • 1970-01-01
    相关资源
    最近更新 更多