2011-10-24 23 views
1

我需要一個基本的重定向在.htacess文件,從目錄文件網址:的.htaccess目錄到文件重定向不工作向前斜槓

RewriteRule ^(.*)/mydirectory/(.*)$ myfile.php?q=$2 

這是行不通的。問題是我不能讓它工作,除非我做的:(?!)

RewriteRule (.*)mydirectory(.*)$ myfile.php?q=$2 

在這種情況下拍攝的字符串($ 2)是「mydirectory中」,當然的規則將適用於任何網址包含「mydirectory」作爲子字符串,即使它不在斜槓之間,這也不行。

測試網址是:

http://localhost/base/mydirectory/some-other-string 

我想到的是:

http://localhost/base/myfile.php?q=some-other-string" 

什麼我得到的第一條規則是什麼(規則不適用於/不工作),以及「MYFILE .php?q = base/mydirectory「分別與第二個規則。

如果我使用RewriteCond,則會發生同樣的情況:只要我添加該死的正斜槓,該規則就不適用了。我甚至逃過了正斜線,雖然沒有必要這樣做,但是無濟於事。

我不是mod_rewrite的專家,但我對它並不陌生。海事組織,第一條規則應該起作用,但事實並非如此。我可能做了一些可怕的錯誤,但我太接近了。

請大家看看,這讓我發瘋。

非常感謝。

回答

0

斜線在正則表達式特殊的含義,你需要轉義:

RewriteRule ^(.*)\/mydirectory\/(.*)$ myfile.php?q=$2 
+0

它仍然無法正常工作,就像我說的。 – webmaster

+0

哎呀,對不起......這裏太晚了。 –

+0

不用擔心,謝謝你的嘗試。 – webmaster