2013-02-19 69 views
1

domain.com/folder/index.php/var1/var2/etc/应该重定向到folder.domain.com/var1/var2/etc/即保持参数不变,但重定向以及剥离的index.phpApache的mod_rewrite的文件夹,子域

文件夹结构如下

Webroot的
      htaccess的
     夹
           的index.php

虽然我可以得到domain.com/folder/...重定向到folder.domain.com/...有以下

RewriteEngine On 
RewriteCond %{REQUEST_URI} ^/folder/(.*)$ 
RewriteRule .* http://folder.domain.com/%1 [R] 

当我试图剥离index.php

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php [QSA,L] 

这一切都开始出问题了。我想要的URL架构工作正常(folder.domain.com),但它仍然可用在文件夹URL(domain.com/folder/index.php)我也试着将一些和所有的.htaccess该文件夹 - 我错过了什么?

添加行为的几个例子,我想实现:

domain.com/folder/index.php/var1/var2 = folder.domain.com/var1/var2 
folder.domain.com/index.php/var1/var2 = folder.domain.com/var1/var 
+0

说明:从可见URL中删除index.php,但继续指示请求执行。 – booleanvalue 2013-02-20 00:22:54

回答

0

我可以做很多建议你,但我认为这是最好的一个,现在(注:未经测试,我不是在PC现在):

RewriteCond%{REQUEST_URI} ^/folder/ 
RewriteRule ^folder/index.php/(.*)$ http://folder.domain.com/$1 [R=301,L] 

这应该重定向到域,剥离index.php

+0

找不到那个工作(并且我在RewriteCond后添加了一个空格)所以,有几个输入和输出URL的例子可以更好地说明我在哪里纠结: 'domain.com/folder/index。 php/var1/var2 = folder.domain.com/var1/var2 folder.domain.com/index.php/var1/var2 = folder.domain.com/var1/var' – booleanvalue 2013-02-20 23:14:36

+0

你的两个例子有什么区别。我只能看到第二个有'var',而不是'var2'。 'var'从哪里来? – 2013-02-21 05:07:06

+0

对不起,只是我的记号说,任何事情都可以去那里,如果你愿意的话可以用通配符。 (和我的错字,错过了2) – booleanvalue 2013-02-21 08:13:13

相关问题