.htaccess url友好重写问题:文件和文件夹名称相同时出错

时间:2012-12-29 18:15:05

标签: php .htaccess

我有一个网站,我正在尝试使用.htaccess文件实现SEO友好重写

我的网站具有以下文件夹结构:

- root/
    - corporativo/
        - [more stuff...]
    - social/
        - [more stuff...]
    - index.php
    - corporativo.php
    - social.php

index.php处理我的所有网站功能和路由。我正在使用GET变量'cuerpo'来确定该部分,例如我正在使用index.php?cuerpo = social的社交部分。

我发现的一个问题是社交目录和social.php与名称和重写条件冲突。

请建议处理这种情况的正确方法。

非常感谢! 最诚挚的问候!

2 个答案:

答案 0 :(得分:1)

确保在.htaccess文件中使用正确的标记:

RewriteCond %{REQUEST_FILENAME} !-f [NC] #Not a file
RewriteCond %{REQUEST_FILENAME} !-d [NC] #Not a dir

编辑: Lix提出了一个很好的观点 - 如果您使用的是Unix,Linux等,您可能不想使用[NC],但是,如果您使用的是Windows,例如,您可能希望使用[NC]

答案 1 :(得分:1)

.htaccess文件中,在重写规则之前,可以使用这两个条件 -

RewriteCond %{REQUEST_FILENAME} !-f  # Not an actual file
RewriteCond %{REQUEST_FILENAME} !-d  # Not an actual directory

他们规定只有在请求的文件名或文件夹不存在时才会应用以下规则。它被用于使浏览器仍然能够访问资源而无需路由它们。

我不是100%确定这是你的问题。更可能是index.php中的路由问题。

相关问题