【问题标题】:Unable to retrieve data on using .htaccess无法使用 .htaccess 检索数据
【发布时间】:2014-02-01 11:48:50
【问题描述】:

我正在使用以下 .htaccess 代码

RewriteEngine On
RewriteRule ^([a-zA-Z0-9-_]+)$ topics.php?cat=$1 
RewriteRule ^([a-zA-Z0-9-_]+)/$ topics.php?cat=$1 
RewriteRule ^([^/]*)/([^/]*)$ /topics.php?cat=$1&bsid=$2 
RewriteRule ^([^/]*)/([^/]*)/$ /topics.php?cat=$1&bsid=$2 
ErrorDocument 403 /error.php
ErrorDocument 404 /error.php
ErrorDocument 500 /error.php

我有一个名为 images 的文件夹或目录,它下面有文件,但是在使用这个 htacces 代码时,当我直接访问 http://appricart.com/images/ajax-loading.gif 之类的访问时,从图像目录中的文件被检索到了空页面。 帮助关于这个..Tnxx

【问题讨论】:

  • 那是因为您将所有内容都重写为topics.php。您需要包含一些内容以忽略目录和文件。
  • 怎么做?可以举个例子吗??

标签: php jquery ajax .htaccess


【解决方案1】:

您应该从此重写代码中跳过文件/目录。

使用此代码:

ErrorDocument 403 /error.php
ErrorDocument 404 /error.php
ErrorDocument 500 /error.php

RewriteEngine On
RewriteBase /

# skip file and directories
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

RewriteRule ^([\w-]+)/?$ topics.php?cat=$1 [L,QSA]

RewriteRule ^([^/]+)/([^/]+)/?$ topics.php?cat=$1&bsid=$2 [L,QSA]

【讨论】:

    【解决方案2】:

    这是一个可怕的解决方案,我建议您不要在 .htaccess 上设置单独的重定向,但我认为这是您所要求的。你必须在重写之前检查文件是否存在。

    RewriteRule ^([a-zA-Z0-9-_]+)/?$ topics.php?cat=$1 
    
    RewriteCond %{REQUEST_URI} ^([^/]*)/([^/]*)/?$
    RewriteCond %{DOCUMENT_ROOT}/images/%2 !-f
    RewriteRule ^ /topics.php?cat=%1&bsid=%2  [L]
    

    尝试将整个重写代码替换为此。我已经用两个部分的一次重写替换了一些多余的东西。

    如需更清洁的解决方案,请查看url routing

    编辑:试试 anunbhava 的代码,我认为它应该可以工作。

    【讨论】:

    • 这个你的代码显示总错误..我正在尝试修复它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-16
    • 1970-01-01
    相关资源
    最近更新 更多