2014-01-13 74 views
1

基本上我試圖通過只從某些目錄(SEF格式所以沒有.php或.html)獲得文件名,然後重寫它們來重寫。htaccess重寫只是文件名

例如,我想改變這一切以下(以及其他類似的)目錄

index.php/dir1/dir2/filename 
index.php/dir1/filename 
index.php/dir1/dir4/dir5/filename 

,並取回只是

index.php/filename 

顯然,文件名是在任何情況下不同的而且有許多不同的目錄組合,所以我更喜歡通配符,所以以dir1開頭的所有目錄都將被刪除。

我很新的htaccess,雖然我可以爲每個不同的目錄結構編寫一個規則有很多它在我的htaccess文件中擁擠。當然,我可以使用通配符,它​​只會刪除dir1開始的所有目錄結構並保留文件名?

非常感謝!

回答

0

將這個代碼在你DOCUMENT_ROOT/.htaccess文件:

RewriteEngine On 

RewriteCond %{THE_REQUEST} \s/+(index\.php)/dir1.*?/([^\s/?]+)\s [NC] 
RewriteRule^/%1/%2 [L,R=302] 
+0

感謝您的,但它仍然沒有出現工作;它取出DIR1,但仍然留下任何後面的內容(即它不會刪除文件名之前的其他目錄)。因此會給出:第一個例子的index.php/dir2/filename。 – arathra

+0

我修復了代碼,現在可以試試了。 – anubhava

+0

不幸的是,根本沒有做任何改變。完整的URL不變。 – arathra