Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/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
Mod rewrite 为什么不是';这是不是要重写重新导演?_Mod Rewrite - Fatal编程技术网

Mod rewrite 为什么不是';这是不是要重写重新导演?

Mod rewrite 为什么不是';这是不是要重写重新导演?,mod-rewrite,Mod Rewrite,我通过index.php发送每个请求,除了博客子目录中的页面。我已经能够在我的父文件夹中使用mod_rewrite和 RewriteCond %{REQUEST_URI} !^/blog RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] ] 但是,如果他们有以下表格,我也希望将请求发送到我的博客文件夹: 文档/一些文件 我试过: RewriteRule ^/documentation/(.+)$ https://www.some_domai

我通过index.php发送每个请求,除了博客子目录中的页面。我已经能够在我的父文件夹中使用mod_rewrite和

    RewriteCond %{REQUEST_URI} !^/blog
    RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
]

但是,如果他们有以下表格,我也希望将请求发送到我的博客文件夹:

文档/一些文件

我试过:

RewriteRule ^/documentation/(.+)$ https://www.some_domain.com/blog/documentation/$1
但在这种情况下,我的请求似乎没有被发送到blog文件夹。我的完整代码如下:

RewriteEngine On

#redirect to index.php as appropriate
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^/documentation/(.+)$ https://www.some_domain.com/blog/documentation/$1

RewriteCond %{REQUEST_URI} !^/blog

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
编辑:

我在下面使用了@Rijul建议的一个稍加修改的版本,在将RewriteRule移动到RewriteCond之前之后,它如我所希望的那样工作。换句话说,文档的重写将执行对blog子文件夹的重写。并且,所有其他请求都通过我的index.php文件。在这一点上,我想了解原因

RewriteEngine On
RewriteRule ^documentation/?(.*)$ /blog/documentation/$1 [R=301,L]

#redirect to index.php as appropriate
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l


RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
据我所知

RewriteEngine On
如果不这样做,所有重写规则和条件都将被忽略

RewriteRule ^documentation/?(.*)$ /blog/documentation/$1 [R=301,L]
将文档重写为博客/文档

RewriteCond %{REQUEST_FILENAME} !-d
此重写条件检查请求的目录名是否不存在。如果它不退出。然后进入下一个条件

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
此重写条件检查请求的文件名是否不存在。如果它不退出。然后进入下一个条件

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
此重写条件检查请求的符号链接是否不存在。如果它不退出。然后继续重写规则

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
重写到index.php?url=

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
这样写重写条件会产生and操作

(没有以该名称存在的文件)和(没有以该名称存在的目录)以及 (该名称中不存在符号链接)

如果这是真的,则重写为php文件。(没有以该名称存在的目录)将在/blog的情况下变为false(因为这样的目录存在)

RewriteEngine On
如果不这样做,所有重写规则和条件都将被忽略

RewriteRule ^documentation/?(.*)$ /blog/documentation/$1 [R=301,L]
将文档重写为博客/文档

RewriteCond %{REQUEST_FILENAME} !-d
此重写条件检查请求的目录名是否不存在。如果它不退出。然后进入下一个条件

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
此重写条件检查请求的文件名是否不存在。如果它不退出。然后进入下一个条件

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
此重写条件检查请求的符号链接是否不存在。如果它不退出。然后继续重写规则

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
重写到index.php?url=

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
这样写重写条件会产生and操作

(没有以该名称存在的文件)和(没有以该名称存在的目录)以及 (该名称中不存在符号链接)


如果这是真的,则重写为php文件。(没有以该名称存在的目录)将在/blog的情况下变为false(因为这样的目录存在)

它工作了一半!现在,如果我把文档/东西放进去,效果会很好。但是,现在它没有执行我的任何“非文档”重定向。例如,我不确定它是否能进入“常规”案例中的最后一行。您能否提供一个不起作用的示例url及其预期结果?例如,www.my_domain.com/authenticate/show-user-login-form应该转到我的登录页面(该页面没有上面的代码)。或者,像www.my_domain.com这样基本的东西应该通过index.php路由并显示主页。这两种情况都没有发生。因此,我一直在玩弄它,并将文档重写行移到了正确的位置,然后根据需要重定向到index.php,它似乎正在工作。如果您或其他人能够解释为什么它现在可以工作,那么我很乐意将此作为解决方案。您的www.my_domain.com/blog在做出更改后是否仍能像您预期的那样工作?它工作了一半!现在,如果我把文档/东西放进去,效果会很好。但是,现在它没有执行我的任何“非文档”重定向。例如,我不确定它是否能进入“常规”案例中的最后一行。您能否提供一个不起作用的示例url及其预期结果?例如,www.my_domain.com/authenticate/show-user-login-form应该转到我的登录页面(该页面没有上面的代码)。或者,像www.my_domain.com这样基本的东西应该通过index.php路由并显示主页。这两种情况都没有发生。因此,我一直在玩弄它,并将文档重写行移到了正确的位置,然后根据需要重定向到index.php,它似乎正在工作。如果您或其他人可以解释为什么它现在可以工作,那么我很乐意将此作为解决方案。您的www.my_domain.com/blog在做出更改后是否仍能像您预期的那样工作?