2013-01-10 30 views
0

我想有網址重寫規則的位置,刪除目錄,沒有名字

www.example.com/dir1/dir2/current-file.html 

......點......

www.example.com/dir1/current-file.html 

...其中..

current-file.htmldir2是可變的。 (dir1是不可變的)

這可能與一個htaccess文件?

編輯

目前我有:

Options +FollowSymLinks 
RewriteEngine On 
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule ^.*$ ../dir1/current-file.html 

但是,這裏有硬編碼的文件,並假定current-filedir2。如果可能的話,我寧願按照URL中的位置來定位dir2

+0

將我對問題的解釋轉移到了問題中..再次感謝! – Joel

回答

1

這裏有一個選項:

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} dir1/[^/]+/([^/]+)/? [NC] 
RewriteRule .* dir1/%1 [R=301,L,QSA] 

它將永久重定向:

http:www.example.com/dir1/anyfolder/anyfile

要:

http:www.example.com/dir1/anyfile

1

試試這樣說:

RewriteRule ^dir1/[^/]/(.+)\.html /dir1/$1.html 
+0

我看到你要去哪裏..目前它正在產生一個404。我會做一點挖掘它。 – Joel

+1

最好的辦法是啓用重寫日誌並查找URL實際上被重寫的內容。 –

+0

良好的通話 - 非常有幫助 – Joel