2009-03-05 87 views
1
RewriteEngine on 
RewriteRule ^/(dir1|dir2|dir3)/(.*)$ /targetfile.php [R,L] 

http://www.somesite.com/dir1 - >http://www.somesite.com/targetfile.php
http://www.somesite.com/dir2 - >http://www.somesite.com/targetfile.php
http://www.somesite.com/dir3 - >http://www.somesite.com/targetfile.phpmod_rewrite的多個目錄的PHP文件

從我在網上看到,這應該工作。不幸的是,它不會。任何見解?

回答

1

如果您想在.htaccess文件中使用此功能,請從模式中刪除前導斜槓。而只匹配完整的路徑段,你必須稍微改變表達式。

那麼試試這個:

RewriteEngine on 
RewriteRule ^(dir1|dir2|dir3)(/|$) targetfile.php [R,L] 
1

我不相信正斜槓是必要的,除非你要它限制對需要後尾隨斜槓「DIR1。」

嘗試: 重寫規則^(DIR1 | DIR2 | DIR3)$ targetfile.php [QSA,L]

0

我認爲問題是,正則表達式授權該目錄名稱後斜槓(例如/ DIR1/),但在該示例中,省略了最後一個斜槓(http://www.somesite.com/dir1沒有尾部斜線)。

我想你可以嘗試只是

RewriteRule ^/(dir[1-3]) /targetfile.php [R,L]