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
Apache Mod rewrite-重定向问题-本地服务器正常,实时服务器不正常';T_Apache_.htaccess_Mod Rewrite_Redirect - Fatal编程技术网

Apache Mod rewrite-重定向问题-本地服务器正常,实时服务器不正常';T

Apache Mod rewrite-重定向问题-本地服务器正常,实时服务器不正常';T,apache,.htaccess,mod-rewrite,redirect,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} !/$ Rewr

以下内容有点问题:

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上本地工作得非常好,但在live服务器上却不工作——而且,如果我将
\u lib/images/
重命名为
\u lib/a/
,它将工作得非常好。。。所以问题是,我是否完全遗漏了什么?即使是一个简单的“hello world”结果也是一样的

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


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

这是在
.htaccess
中,如果是,则
^/?…
是一个错误。您将看不到前导的
/
——请参阅apache文档'n。另外
重写规则。*[^/]$…
=>没有尾随斜杠,因此不是;t
%{REQUEST\u URI}/$冗余条件?是的,这是
.htaccess
-我不确定从哪里得到
^/?…
,但它似乎可以工作,也许我可以删除
-我对
.htaccess
不太在行,这可能就是为什么会有冗余进程的原因…事情是。。。我刚刚删除了
,我的脚本不再调用这些文件,因此它实际上必须是正确的…我回到我的第一个问题:这是
.htaccess
规则集吗,因为引用Apache文档:“在
目录
和htaccess上下文中,在删除导致服务器执行当前重写规则的前缀(例如“
app1/index.html
”或“
index.html
”,具体取决于指令的定义位置)后,模式将首先与文件系统路径相匹配。”。“我不完全确定406是什么东西——但406.html是在我做
echo$_GET['route']时出现的在index.php上。。。但是,如果出于某种原因将其重命名为除
images
以外的任何名称,images/php脚本就会在该文件夹中开始工作,这就是为什么我认为它可能与.htaccess文件的其余部分有关