2013-02-19 117 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