Mod重写 - 重定向问题 - 本地服务器很好,实时服务器不行

时间:2012-02-17 16:28:57

标签: apache .htaccess mod-rewrite redirect

下面有一点问题:

RewriteEngine On
RewriteOptions Inherit
RewriteBase /

#Add trailing slash if not a directory or file, but not if it contains a dot

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !\.
RewriteRule .*[^/]$ $0/ [L,R=301]

# Don't redirect these directories

RewriteRule ^/?_images/.+$ - [L]
RewriteRule ^/?_lib/.+$ - [L]
RewriteRule ^/?_scripts/.+$ - [L]
RewriteRule ^/?_temp/uploads/.+$ - [L]
RewriteRule ^/?_template/.+$ - [L]

# Redirect via router, but not these files

RewriteCond %{REQUEST_URI} !^(\/!favicon.ico|robots.txt|sitemap.xml).*$
RewriteCond %{REQUEST_URI} !^\/$
RewriteRule ^(.*)$ index.php?route=$1 [QSA,L]

我遇到的问题是'不重定向目录' - 基本上这些文件夹中的文件仍应显示, - 这是正常的,但我在显示/_lib/images/的内容时遇到了一些麻烦目录 - 由于某种原因,我总是会抛出404错误(可能是因为它通过路由器)。

通过显示错误编号进行仔细检查,它实际上似乎是406错误(我之前没有遇到过),而404可能是由于没有406错误页面而导致的。

奇怪的是,它在XAMPP本地完美运行,但在实时服务器上却没有 - 如果我将_lib/images/重命名为_lib/a/,它会完美地工作......所以这个问题是的,我在这里完全遗漏了什么吗?即使是一个简单的“你好世界”也会产生相同的结果......

1 个答案:

答案 0 :(得分:0)

  

406不可接受所请求的资源只能根据请求中发送的Accept标头生成不可接受的内容。

听起来您没有在服务器上设置的图像文件类型的关联。将图像移动到DOCROOT,然后尝试显示它。如果它返回406,那么您需要设置正确的文件关联。