【问题标题】:.htaccess URL reroute to different folder based on first part of query.htaccess URL 根据查询的第一部分重新路由到不同的文件夹
【发布时间】:2009-07-28 03:51:02
【问题描述】:

这是我的 .htaccess 现在

rewriteengine on
rewritecond %{HTTP_HOST} ^www.example.com$ [OR]
rewritecond %{HTTP_HOST} ^example.com$
rewriterule ^index.php/? "http\:\/\/example\.com\/" [R=301,L] #4a397bb852bc9

它将所有请求从根目录发送到 index.php 我需要做的是将所有请求从 www.example.com/site2/ 发送到 www.example.com/site2/index.php

我对正则表达式的理解总是缺少这些奇怪的规则和条件

谢谢,乔

【问题讨论】:

    标签: apache .htaccess mod-rewrite


    【解决方案1】:

    您命名的规则会重定向任何请求,即 URL 路径以 index.php 开头,后跟可选的斜杠,主机名是 www.example.comexample.com,状态码为 301 到 http://example.com/

    但是如果你想从一个目录重写请求到另一个目录,试试这个规则:

    RewriteRule ^folder-1/?([^/].*)?$ folder-2/$1 [L]
    

    编辑   回复您的评论:

    RewriteCond $0 !=site2/index.php
    RewriteRule ^site2/.* site/index.php [L]
    

    【讨论】:

    • 啊。您可能已经猜到了,我没有创建这个 .htaccess 文件。我只是想编辑它,以便我可以尝试在服务器的子文件夹中使用 url-rerouting。
    • 我不确定我是否正在尝试将请求从一个目录重写到另一个目录。我希望 /site2/ 之外的所有请求都保留在它之外,但 /site2/ 内的所有请求都指向 /site2/index.php
    猜你喜欢
    • 1970-01-01
    • 2020-08-28
    • 2021-08-09
    • 1970-01-01
    • 2014-03-20
    • 2016-03-12
    • 1970-01-01
    • 2012-11-23
    • 1970-01-01
    相关资源
    最近更新 更多