【问题标题】:Htaccess if doesn't exists, doesn't workHtaccess 如果不存在,则不起作用
【发布时间】:2012-02-27 03:46:06
【问题描述】:

我对 htaccess 没有太多经验。但我有这个脚本:

Options +FollowSymLinks
ErrorDocument 404 /index.php
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)$ index.php?doel_url=$1 [L,QSA]

但是如果存在文件,他只听这个规则。 救命!

【问题讨论】:

  • 您能否展示一个 URL 示例以及它的行为与您的预期有何不同?
  • 喜欢这个网址website.nl/categorie。文件 categorie.php 存在,但 htaccess 说它不存在。他现在只是将其视为 index.php?doel_url=categorie
  • 但这就是你告诉 Apache 要做的事情 - categorie 不等于 categorie.php,是吗?你想让重写规则做什么?
  • 我想创建一个这样的网址,website.nl/categorie/8/name

标签: .htaccess web


【解决方案1】:

website.nl/categorie 不是文件,也不是目录。

如果您需要分类来访问该文件,您需要确保它具有文件扩展名(在您的情况下为 .php),因此它应该是 website.nl/categorie.php 以避免被重定向到 index.php页面

【讨论】:

  • 如果我不想要文件扩展名,而是创建一个这样的网址:www.website.nl/categorie/7/name 我做错了什么?
  • 在这种情况下,htaccess 会查看 name 以查看它是文件还是目录。因为它既不是 /categorie/7/name 也不会被传递给 index.php ,您需要在其中处理它。这是你想要做的吗?还是有一个文件 name.php/html/whatever?
  • categorie其实就是categorie.php
  • 那么 website.nl/categorie 实际上需要是 website.nl/categorie.php
  • 回首过去,我想我明白你想要做什么:你想要的是,如果 url 包含要由 categorie.php 处理的类别 - 对吗?
【解决方案2】:

Options -MultiViews 应该可以解决这个问题。

【讨论】:

    猜你喜欢
    • 2018-02-05
    • 2017-12-07
    • 2011-06-12
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 2010-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多