无法使用.htaccess检索数据

时间:2014-02-01 11:48:51

标签: php jquery ajax .htaccess

我正在使用以下.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的帮助

2 个答案:

答案 0 :(得分:0)

这是一个可怕的解决方案,我建议你不要在.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的代码,我认为它应该有效。

答案 1 :(得分:0)

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

使用此代码:

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]