【问题标题】:htaccess re-write for subfolders?htaccess 重写子文件夹?
【发布时间】:2015-09-27 23:46:41
【问题描述】:

也许有人可以指出我正在尝试做的事情的正确方向。 我正在尝试重新编写,以便所有子文件夹将重定向到一个文件夹,同时保留第一个子文件夹信息以及 URL 的其余部分。

例子:

http://www.example.com/billy/profile/info.php

http://www.example.com/麦克/profile/info.php

http://www.example.com/sarah/profile/info.php

http://www.example.com/ma​​rk/profile/info.php

它会重定向到哪里:

http://www.example.com/home/profile/info.php?user_name=$1 我可以在其中获取用户名并重定向到正确的页面。

【问题讨论】:

    标签: regex apache .htaccess mod-rewrite subdirectory


    【解决方案1】:

    您可以在DOCUMENT_ROOT/.htaccess 文件中使用此代码:

    RewriteEngine On
    RewriteBase /
    
    RewriteRule ^(?!home/)([^/]+)/(profile/info\.php)$ home/$2?user_name=$1 [L,QSA,NC]
    

    【讨论】:

    • 谢谢你,我的朋友!这让我走上了正轨!!非常感谢您的帮助。
    • 这几乎可以工作,但我需要的是能够在第一个子文件夹(用户名)之后获得任何东西:example.com/mark/profile/images/img.jpgwww,example.com/mark/music/folder/index.phpexample.com/mark/homework/index.php 第一个文件夹之后的任何东西都可以重定向到:example.com/home/(full 上面的 url)
    • 第一级之后是否只有3个文件夹需要重写,即music, profile & homework
    • 不,它可以是任何东西。我想我正在尝试为每个用户创建子域,无论最后添加什么,它总是只会使用站点上的相同文件,只是将用户名捕获为变量。
    • 然后试试这个规则:RewriteRule ^(?!home/)([^/]+)/([^/]+/.+)$ home/$2?user_name=$1 [L,QSA,NC] 但如果它不起作用,我建议打开一个新问题。从 cmets 理解一个问题并不容易。
    猜你喜欢
    • 2012-12-12
    • 2016-12-21
    • 2012-11-22
    • 1970-01-01
    • 2021-11-20
    • 2014-01-13
    • 2019-12-21
    • 2012-08-20
    • 2013-12-31
    相关资源
    最近更新 更多