【问题标题】:redirecting a url to a subfolder using AliasMatch and/or htaccess使用 AliasMatch 和/或 htaccess 将 url 重定向到子文件夹
【发布时间】:2014-01-23 10:17:13
【问题描述】:

我有以下设置并且我的域(假设 abc.com)指向 src

src
    index.php
    blog
        index.php

我想将所有请求重定向到 abc.com/blog 以从 src/blog 文件夹中提供服务,并从 src 文件夹中休息。 src 和 blog 都有其他目录,并且都使用到 index.php 的路由来服务页面。

问题是像 abc.com/blog/whatever 这样的网址会转到 src/index.php 而它应该转到 blog/index.php 编辑 src/.htaccess 不起作用,因为我必须将请求定向到子目录。 以下指令:

AliasMatch  /blog.* /path/to/blog

导致循环重定向: abc.com/blog/whatever/index.php/index.php/index.php....

我按照这里的解释: http://www.apachelounge.com/viewtopic.php?t=1566

它说如果我们在别名目标中提供目录路径,Apache 将添加 index.php。

要求很简单:只需将所有 blog/* 请求放在 blog 文件夹中,其余的由 htaccess 处理

【问题讨论】:

    标签: apache .htaccess mod-rewrite


    【解决方案1】:

    /blog/.htaccess 中尝试这条规则作为您的第一条规则

    RewriteRule ^(.*)$ /src/$1 [L]
    

    【讨论】:

    • 不起作用... abc.com/blog/whatever 仍然转到 src/index.php
    • abc.com/blog/whatever 应该按照这个转到abc.com/src/blog/whatever。此 .htaccess 中是否还有其他规则或 /blog/ 文件夹中是否有任何 .htaccess?
    • 博客使用url重写,有自己的htaccess。 “whatever”不是一个目录——它应该去 blog/index.php 但不是——这是我遇到的主要问题。
    • 好的,从/blog/ 文件夹发布您的.htaccess。
    • 仍然无法工作...我现在收到以下错误:在此服务器上找不到请求的 URL /src/ 博客的 htaccess 是标准的 wordpress haccess:@987654327 @
    【解决方案2】:
    <Directory /usr/local/www/apache>
        RewriteEngine on
        RewriteCond %{REQUEST_FILENAME} -s [OR]
        RewriteCond %{REQUEST_FILENAME} -l [OR]
        RewriteCond %{REQUEST_FILENAME} -d
        RewriteRule ^.*$ - [NC,L]
    
        RewriteRule ^blog/.*$ /blog/index.php [NC,L]
        RewriteRule ^.*$ /index.php [NC,L]
    </Directory>
    

    我把它放在 apache 配置文件中。我已经丢弃了 AliasMatch 和 .htaccess 文件。

    【讨论】:

    • 不起作用... abc.com/blog/whatever 仍然转到 src/index.php 而不是 blog/index.php
    猜你喜欢
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 2017-12-05
    • 2012-01-09
    • 2017-03-05
    • 1970-01-01
    • 2021-06-29
    相关资源
    最近更新 更多