2017-07-18 86 views
4

我試圖使域getvene.com在子文件夾main中打開。這工作正常。但後來我需要getvene.com/s/blabla被視爲/?secret-code=blabla。 RewriteRule可以在底部看到。另外,這些規則正常工作。但是在一起,密碼規則不起作用。什麼需要改變?.htaccess域從子文件夾打開,然後重寫代碼

RewriteEngine on 

# --- BEGIN domain redirect --- 
RewriteCond %{THE_REQUEST} \ /+main/ 
RewriteRule ^main/(.*)$ http://getvene.com/$1 [L,R=301] 

RewriteCond %{THE_REQUEST} \ /+app/ 
RewriteRule ^app/(.*)$ http://app.getvene.com/$1 [L,R=301] 

RewriteRule ^(main|app)/ - [L] 

RewriteCond %{HTTP_HOST} ^(www\.)?getvene\.com$ [NC] 
RewriteRule ^(.*)$ /main/$1 [L] 

RewriteCond %{HTTP_HOST} ^(www\.)?app\.getvene\.com$ [NC] 
RewriteRule ^(.*)$ /app/$1 [L] 
# --- END domain redirect --- 

# --- BEGIN Secret Code redirect --- 
RewriteRule ^s/(.*) /?secret-code=$1 [L] 
# --- END Secret Code redirect --- 
+0

規則'重寫規則^ $ /主/ $ 1 [L]'終止改寫通('L'標誌!),因此規則以下永遠不會得到應用。 – arkascha

+0

你能在答案中提供我需要的完整代碼嗎?如果它有效,我會接受它。 –

+0

針對您的問題的簡短解決方案是更改最後一條規則的位置。嘗試將其添加到其他規則的頂部,但在**行上寫下** RewriteEngine。 – starkeen

回答

8

你可以使用:(。*)

RewriteEngine on 

# --- BEGIN domain redirect --- 
RewriteCond %{THE_REQUEST} \ /+main/ 
RewriteRule ^main/(.*)$ http://getvene.com/$1 [L,R=301] 

RewriteCond %{THE_REQUEST} \ /+app/ 
RewriteRule ^app/(.*)$ http://app.getvene.com/$1 [L,R=301] 

# Secret Code redirect 
RewriteRule ^s/(.*) /?secret-code=$1 

RewriteRule ^(main|app)/ - [L] 

RewriteCond %{HTTP_HOST} ^(www\.)?getvene\.com$ [NC] 
RewriteRule ^(.*)$ /main/$1 [L] 

RewriteCond %{HTTP_HOST} ^(www\.)?app\.getvene\.com$ [NC] 
RewriteRule ^(.*)$ /app/$1 [L] 
# --- END domain redirect ---