.htaccess开始重定向图像

时间:2018-01-19 14:20:26

标签: php apache .htaccess redirect mod-rewrite

所以我一直在搞乱我的网站(昨天工作)并且我错误地将我的.htaccess文件重写为空白(想要将一个文件夹中的文件复制到不同的文件夹中,但是搞砸了它让它重写根文件夹的.htaccess),所以我试图再次制作一个(是的,我知道,应该有备份)。

现在问题是:我在.htaccess文件中编辑了无关的内容,突然图像停止显示,被重定向到我的404错误页面。在我看来,Apache突然开始忽略我的某些RewriteCond规则,因为css和javascript规则通常有效,而且它让我疯狂。

我试图到处搜索,但还没有找到解决方案。 这是我目前的.htaccess文件:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !=/index_new.php
RewriteCond %{REQUEST_URI} !.*\.png$ [NC]
RewriteCond %{REQUEST_URI} !.*\.jpg$ [NC]
RewriteCond %{REQUEST_URI} !.*\.css$ [NC]
RewriteCond %{REQUEST_URI} !.*\.gif$ [NC]
RewriteCond %{REQUEST_URI} !.*\.js$ [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^([^/]+)$ index_new.php?sekce=$1 [NC,L]
RewriteRule ^([^/]+)/$ index_new.php?sekce=$1 [NC,L]
RewriteRule ^([^/]+)/([^/]+)$ index_new.php?sekce=$1&podsekce=$2 [NC,L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)$ index_new.php?sekce=$1&podsekce=$2&podpodsekce=$3 [NC,L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)$ index_new.php?sekce=$1&podsekce=$2&podpodsekce=$3&podpodpodsekce=$4 [NC,L]

这个问题被标记为DUPLICATE,但是我已经尝试了解决方案(在写问题之前)并且它们不起作用,因为我也使用绝对路径来处理图像,但无论如何我都无法找到它们。

1 个答案:

答案 0 :(得分:0)

管理从网络服务器提供商处获取备份。如果有人遇到同样的问题,工作代码是:

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

RewriteRule \.(css|jpe?g|gif|png|gif|js|ico)$ - [L]

RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]

RewriteRule ^([^/\.]+)/?$ /index_new.php?sekce=$1 [L]
RewriteRule ^([^/\.]+)/([^/\.]+)/?$ /index_new.php?sekce=$1&podsekce=$2 [L]
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ /index_new.php?sekce=$1&podsekce=$2&podpodsekce=$3 [L]
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ /index_new.php?sekce=$1&podsekce=$2&podpodsekce=$3&podpodpodsekce=$4 [L]