2012-07-22 42 views
0

我想捕捉的字符串中的URL,http://localhost/framework/red .. 我有以下htaccess文件爲什麼這個htaccess文件不能給出預期的結果?

Options +FollowSymlinks 
RewriteEngine On 
RewriteRule ^(^/)*$ index.php?t=$1 

我在框架目錄中的index.php文件。 瀏覽器返回對象未找到! eror和日誌說文件不存在:C:/ xampp/htdocs/framework/sa .. 如何使用(^ /)存儲變量後的字符串/變量..

+0

我認爲你混淆了''和'(...)'。 – Gumbo 2012-07-22 08:56:05

+0

不確定正則表達式匹配是否正確,請嘗試^(。*)/ $而不是^(^ /)* $。這樣,localhost/framework/* HERE * /之間的任何內容都會將HERE值發送給t參數。如果我們可以看到您的整個網址結構,這將會更容易。 – Chris 2012-07-22 09:00:16

+0

我一直想知道使用查詢字符串而不是PATH_INFO有什麼好處(順便說一下,您可能需要'[QSA]'標誌作爲規則) – 2012-07-22 12:48:50

回答

0

^(^/)*$不是有效的正則表達式。它不匹配任何東西,因此規則永遠不會被應用,你將得到404響應。你可能正在尋找類似的東西:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php?t=$1 [L,QSA] 
+0

'^(^ /)* $'實際上是有效的。它匹配字符串'「」'和'「/」'。 – Gumbo 2012-07-22 12:46:27

相關問題