我目前在htaccess中设置了以下重写:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/([^/]*)/(.*)$ index.php?controller=$1&cmd=$2¶ms=$3 [L,QSA]
RewriteRule ^([^/]*)/([^/]*)$ index.php?controller=$1&cmd=$2 [L,QSA]
RewriteRule ^([^/]*)$ index.php?controller=$1 [L,QSA]
所以例如博客只是重写为index.php?controller = blog或blog / show / 32重写为index.php?controller = blog& cmd = show& params = 32等等。
我想将我的所有网站转移到一个名为testing的子文件夹中,因此需要更新我的htaccess以适应。不担心重新路由到文件夹,即我没有打扰输入www.example.com并且它在/testing/index.php登陆,我想输入www.example.com/testing/并且它在索引处着陆.php它做了但其他规则似乎打破了。
答案 0 :(得分:1)
如果将此.htaccess与文件一起移动到子文件夹,它将按预期工作。你不需要改变任何东西。如果.htaccess中有RewriteBase
指令,则必须更新它以反映新路径。
答案 1 :(得分:0)
将此规则保留在root .htaccess中:
RewriteEngine On
RewriteRule ^((?!testing/).*)$ testing/$1 [L,NC]
将此规则保留在/ testing / .htaccess`中:
RewriteEngine On
RewriteBase /testing/
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([^/]+)/([^/]+)/(.+)$ index.php?controller=$1&cmd=$2¶ms=$3 [L,QSA]
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?controller=$1&cmd=$2 [L,QSA]
RewriteRule ^([^/]+)/?$ index.php?controller=$1 [L,QSA]