Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php .htaccess的重定向错误?_Php_.htaccess_Redirect - Fatal编程技术网

Php .htaccess的重定向错误?

Php .htaccess的重定向错误?,php,.htaccess,redirect,Php,.htaccess,Redirect,我制作了一个URL缩短器,缩短的链接如下所示: . 我的PHP代码检查这个06uoM是否在我的数据库中-如果是,它将重定向到正确的页面,如果不是,它将从index\u html目录打开index.PHP文件。这很糟糕,因为当我将URL写入上传到服务器上的图像时,它会打开index.php,因为URL不在数据库中 -看到了吗 这就是.htaccess的外观: RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %

我制作了一个URL缩短器,缩短的链接如下所示: . 我的PHP代码检查这个06uoM是否在我的数据库中-如果是,它将重定向到正确的页面,如果不是,它将从
index\u html
目录打开
index.PHP
文件。这很糟糕,因为当我将URL写入上传到服务器上的图像时,它会打开
index.php
,因为URL不在数据库中

-看到了吗

这就是
.htaccess
的外观:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f  

RewriteCond %{REQUEST_FILENAME} !-d  

RewriteRule ^(.+)$ index.php?url=$1


请帮我解决这个问题

听起来你想让404错误发生在URL上,比如

http://patison.eu/forum/images/off.gif

但不是在像这样的URL上

http://patison.eu/06uoM

如果是这种情况,您可以将
.htaccess
代码更改为此,以限制重写的URL类型:

RewriteEngine on

# Limit rewrites to urls like '/06uoM' or '/06uoM/', but not like '/forum/images/off.gif'
RewriteCond %{REQUEST_URI} ^/[0-9a-z]{5}/?$ [NC]

RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteRule ^(.+)$ index.php?url=$1

但是图像目录中不存在
off.gif
,这就是请求被转发到
index.php
的原因。这是因为文件存在:所有目录中有多少个.htaccess??只有这一个?当进入buddies.gif时,它会再次发送到index.php。。。也许你忘了添加.giff而不是png?你做了什么更改吗?现在url转到youtube。你解决了吗?