我对理解.htaccess重写并不是很了解,这让我很头疼。
我有domain.com
,还有一个名为app/webroot/
我想要一切:domain.com/*
将重写到文件夹domain.com/app/webroot/*
然后这让我发疯了。我有一个admin文件夹,在domain.com下也叫"system"
。 domain.com/system下的所有内容都不会重写到webroot。
最后,我希望system/something
将重写为/system/index.php?subpage=something
真的很抱歉,如果你认为这很容易,我不能这样做,但我已经整天坚持了。
以下是我试图做的事情:
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¶m=$3 [NC,L,QSA]
答案 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¶m=$4 [NC,L,QSA]