2010-07-12 79 views
0

我需要一个.htaccess文件: 文件将改写规则​​:htaccess的子站点

xyz.sitename.com 将被改写为: sitename.com/index.php/a/ b/XYZ

xyz.sitename.com/m/n/o 将被重写为: sitename.com/index.php/m/n/o/xyz

sitename.com/m/n/o 将被改写为: sitename.com/index.php/m/n/o

回答

0
Options +FollowSymlinks 
RewriteEngine on 
RewriteRule (.+).sitename.com/ sitename.com/index.php/a/b/$1 
RewriteRule (.+).sitename.com/(.+) sitename.com/$2/$1 

.htaccess trips and tips

+0

它不工作。请再次帮助我 – 2010-07-12 18:26:45

+0

xyz.sitename.com将被改写为:sitename.com/index.php/a/b/xyz xyz.sitename.com/m/n/o将被改写为:sitename.com/ index.php/m/n/o/xyz sitename.com/m/n/o将被改写为:sitename.com/index.php/m/n/o 请解决这个问题,并帮助我 – 2010-07-12 18:27:53

+0

mod_rewrite只适用于域名http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html之后的路径 - 你需要很多RewriteConds来处理这个... – HorusKol 2010-07-13 00:11:25

0

试试这个:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{HTTP_HOST} ^www [OR] 
RewriteCond /%{HTTP_HOST} ^(/[^\.]+)\.[^\.]+\.[^\.]+$ 
RewriteRule ^.*$ /index.php/$0%1 

虽然,正如我mentioned in another answer,努力营造PATH_INFOmod_rewrite似乎是有点问题的。您可能会有更好的运气,但可以选择将路径写入查询字符串或使用变量来获取这些信息。

+0

这不是工作,请再次帮助我 – 2010-07-13 17:40:50

+0

当它不起作用时会发生什么? – 2010-07-13 17:56:36