在Mod Rewrite .htaccess父文件夹和1子文件夹上需要帮助

时间:2013-08-28 22:01:33

标签: php regex apache mod-rewrite url-rewriting

我对理解.htaccess重写并不是很了解,这让我很头疼。

我有domain.com,还有一个名为app/webroot/

的文件夹
  1. 我想要一切:domain.com/*将重写到文件夹domain.com/app/webroot/*

  2. 然后这让我发疯了。我有一个admin文件夹,在domain.com下也叫"system"。 domain.com/system下的所有内容都不会重写到webroot。

  3. 最后,我希望system/something将重写为/system/index.php?subpage=something

  4. 真的很抱歉,如果你认为这很容易,我不能这样做,但我已经整天坚持了。

    以下是我试图做的事情:

    RewriteEngine on
    
    RewriteRule    ^(.*)$ app/webroot/$1 [L]
    
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    
    RewriteRule ^/?(system)/?([^/]+)/?$ /system/index.php?subpage=$1 [NC,L,QSA]
    RewriteRule ^/?(system)/?([^/]+)/([^/]+)/?$ /system/index.php?subpage=$1&action=$2 [NC,L,QSA]
    RewriteRule ^/?(system)/?([^/]+)/([^/]+)/([^/]+)/?$ /system/index.php?subpage=$1&action=$2&param=$3 [NC,L,QSA]
    

1 个答案:

答案 0 :(得分:1)

nvm,我知道了。

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]

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

RewriteRule ^/?(system)/?([^/]+)/?$ /system/index.php?subpage=$2 [NC,L,QSA]
RewriteRule ^/?(system)/?([^/]+)/([^/]+)/?$ /system/index.php?subpage=$2&action=$3 [NC,L,QSA]
RewriteRule ^/?(system)/?([^/]+)/([^/]+)/([^/]+)/?$ /system/index.php?subpage=$2&action=$3&param=$4 [NC,L,QSA]