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 .htaccess-内部服务器错误_Apache_.htaccess_Mod Rewrite_Url Rewriting - Fatal编程技术网

Apache .htaccess-内部服务器错误

Apache .htaccess-内部服务器错误,apache,.htaccess,mod-rewrite,url-rewriting,Apache,.htaccess,Mod Rewrite,Url Rewriting,我正在尝试进行以下重写: http://example.com/folder1/folder3/index.html http://example.com/folder1/folder3/index.html 致: 为此,我尝试了以下.htaccess: RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} !^folder1/folder2/.*$ RewriteRule ^folder1/(.*)$ /folder1/fo

我正在尝试进行以下重写:

http://example.com/folder1/folder3/index.html
http://example.com/folder1/folder3/index.html
致:

为此,我尝试了以下.htaccess:

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_URI} !^folder1/folder2/.*$
RewriteRule ^folder1/(.*)$ /folder1/folder2/$1 [L]
但我得到:
内部服务器错误

另一方面,如果我做一个实验(只是为了测试),比如:

然后重写:

致:

工作。但我需要第一次重写

有没有办法解决这个问题

[编辑单词“重定向”->单词“重写”]

[编辑以添加error.log内容]

在以下jsbin中,您有error.log内容:

变量中的URI包含前导的
/
,因为它是URL的路径部分。因此,当您使用
时^folder1
条件,它无法匹配,导致无限循环

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_URI} !^/folder1/folder2/
RewriteRule ^folder1/(.*)$ /folder1/folder2/$1 [L]
至于重定向,您实际上并没有重定向客户端;但只需在内部重写URL,将
/folder2
包含在其中。对于重定向,您需要
R
标志。

变量中的URI包含前导的
/
,因为它是URL的路径部分。因此,当您使用
时^folder1
条件,它无法匹配,导致无限循环

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_URI} !^/folder1/folder2/
RewriteRule ^folder1/(.*)$ /folder1/folder2/$1 [L]

至于重定向,您实际上并没有重定向客户端;但只需在内部重写URL,将
/folder2
包含在其中。对于重定向,您需要
R
标志。

我做了上面的更改(我仔细检查了),但仍然得到“内部服务器错误”。关于重定向,你是对的,我需要的是重写而不是重定向,所以我不会使用R标志。@nightclub你还有一些其他的重写,它们在你的内部重定向中添加了
example.com
,导致了无限循环。我做了上面的更改(我仔细检查了一下),但我仍然得到了“内部服务器错误”。关于重定向,你是对的,我需要的是重写而不是重定向,所以我不会使用R标志。@nightclub你还有一些其他重写,它们在你的内部重定向中添加了
example.com
,导致无限循环。
/folder1/
中也有.htaccess吗?
/folder1/
中也有.htaccess吗?
http://example.com/kkk/folder2/folder3/index.html
RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_URI} !^/folder1/folder2/
RewriteRule ^folder1/(.*)$ /folder1/folder2/$1 [L]