首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mod_rewrite (Apache2.4) htdocs外的RewriteBase

mod_rewrite (Apache2.4) htdocs外的RewriteBase
EN

Stack Overflow用户
提问于 2014-10-22 12:43:41
回答 1查看 1.1K关注 0票数 1

我陷入了一个问题,试图让我的重写规则发挥作用。

假设以下设置:

文件夹结构如下:

代码语言:javascript
复制
app/
web/                         <--- Document-Root
    .htaccess                <--- My mod_rewrite rules
    index.php   

vendor/
    company/
        package/
            Folder/
                Route.php

vhost将"web/“指向Document,并且降低了安全性,因此允许所有重写:

代码语言:javascript
复制
<Directory "~PATH~\web">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order deny,allow
    allow from all
    Require all granted
</Directory>

现在,我尝试简单地将每个请求(*)重写为"Route.php“(内部的!没有301之类的)。就我的理解而言,如果if将调用"www.example.com/a/b“,那么我希望请求是内部重定向到~PATH~/vendor/vendor/company/package/Folder/Route.php的,在那里我可以获取所有内容,并在PHP中接受请求进行进一步处理。

但是重写失败了。也许不可能在"/../“目录上遍历?!

.htacces的内容:

代码语言:javascript
复制
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /../vendor/company/package/Folder
    RewriteRule .* - [E=ROUTER:Route.php]

    # route calls to router /x/y/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule . %{env:ROUTER}?mode=htaccess [QSA,L]

</IfModule>

任何帮助都要感谢:)谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-22 14:29:44

尝尝这个

代码语言:javascript
复制
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule .* ../vendor/company/package/Folder/Router.php [L]   
</IfModule>

编辑:

我在本地的机器上试过了。

此设置工作如下:

代码语言:javascript
复制
RewriteRule .* vendor/company/package/Folder/Router.php [L]  

似乎不允许将请求转发到高于Docroot的目录。

我发现这篇文章:

htaccess RewriteRule重定向到父目录?

重要部分:

您不能重写到文档根目录之外。这是一个安全问题.

EDIT2:

更多信息:重写-版本2.4

引文:

URL-路径 指向要服务的资源的相对路径。注意,mod_rewrite试图通过检查路径的第一段是否存在于文件系统的根目录来猜测您是指定了文件系统路径还是指定了URL路径。例如,如果您指定一个替换字符串/ www /file.html,那么这将被视为一个URL路径,除非根目录或文件系统中存在一个名为www的目录(或者,在.htaccess文件中使用重写的情况下,它相对于您的文档根),在这种情况下,它将被视为文件系统路径。如果希望将其他URL映射指令(如Alias)应用于结果URL路径,请使用如下所述的PT标志。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26507740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档