2017-05-27 74 views
0

我需要在htaccess中設置重定向。 下面在.htaccess中設置重定向並保留路徑

RewriteEngine on 
# If a directory or a file exists, use it directly 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
# Otherwise forward it to index.php 
RewriteRule . frontend/web/index.php 

我的htaccess給出所以它重定向所有請求到前端/網絡/ index.php文件

但問題是,假設下面的請求是/網站/約 目前使用上述規則frontend/web/index.php沒有收到路徑參數。即。 /網站/約被重定向到

我需要的路徑作爲參數的路徑參數本身在前端/網絡/ index.php文件

.IE。/site/about應映射到/frontend/web/index.php/site/about 路徑部分也是動態的。即它可以是任何類似網站/服務

如何在htaccess中執行該規則。我已經檢查了一些其他的解決方案,但其中大部分都說映射路徑參數來查詢字符串,我不能按照我的網站設置來做。

+0

看看這裏我的問題,我認爲這是非常相似,你需要什麼https://stackoverflow.com/questions/34181921/http-to- www-while-preserving-subfolder – aron9forever

回答

1

你需要原始路徑附加到新的一個:

RewriteRule (.*) frontend/web/index.php/$1 
1

正如@Rickdenhaan說,你需要將請求路徑附加到目標網址。您可以使用%{REQUEST_URI}變量對其進行追加,也可以在重寫目標的末尾使用backrefrence。

你重寫規則行改成這樣:

RewriteRule . frontend/web/index.php%{REQUEST_URI} [L] 
+0

它似乎沒有工作 –

+0

請具體說明您遇到的問題。 – starkeen