2014-11-23 108 views
1

我正在嘗試將此網址www.domain.com/~username重定向到www.domain.com/~username/public,但從網址中刪除了/public.htaccess:如何刪除URL中的子文件夾的子文件夾?

這是我.htaccess文件

<IfModule mod_rewrite.c> 

RewriteEngine on 
RewriteBase /~username/ 
RewriteRule !^public/ public%{REQUEST_URI} [L] 

RewriteCond %{THE_REQUEST} ^GET\ /public/ 
RewriteRule ^public/(.*) /$1 [L,R=301] 

</IfModule> 

但我發現了這個錯誤:

Not Found 

The requested URL /~username/public/~username/ was not found on this server. 

任何幫助表示讚賞!

回答

1

你可以試試這個代碼:

RewriteEngine on 
RewriteBase /~username/ 

RewriteCond %{THE_REQUEST} ^GET\ /public/ [NC] 
RewriteRule ^public/(.*)$ $1 [L,R=301,NE] 

RewriteRule ^((?!public/).*)$ public/$1 [L,NC] 
+0

是的!這工作完美。你能解釋一下你爲了完成這項工作而添加了什麼?這對未來的參考很有用。 – 2014-11-24 16:00:52

+0

主要問題是您使用'%{REQUEST_URI}',它包含完整的來自根目錄的URI,而不僅僅是來自當前目錄的相對URL,這裏是'$ 1'。 – anubhava 2014-11-24 16:03:50