2011-05-24 102 views
2

所以我要直接去做生意。在XAMPP(Windows 7 32位)和MAMP(OS X Snow Leopard)上都進行了測試和確認,都是最新版本。我有以下的網站結構:如何使用mod_rewrite重定向到文檔並設置GET參數?

/op/.htaccess 
/op/index.php 
/op/profile.php 

的路徑是從Apache的文檔根目錄的絕對路徑。

我的.htaccess文件看起來是這樣的:

RewriteEngine on 
RewriteRule ^[a-zA-Z0-9]+$ profile.php?alias=$1 

當我通過HTTP請求的網站://本地主機:的index.php開8888/OP/文件。沒關係。當我通過請求http:// localhost:8888/op/example文件profile.php已打開,那也行。並且設置了一個名爲別名的GET參數,就像所期望的那樣。但它的價值僅僅是空的!就像這樣:

http://localhost:8888/op/profile.php?alias= 

所以,我只是想通過對URL的最後一部分作爲GET變量,它看起來像這樣的服務器:

http://localhost:8888/op/profile.php?alias=example 

我慢慢地越來越絕望。自從現在兩個半小時以來,我一直在爲此而戰。要麼是錯誤的服務器配置,要麼是一個真正愚蠢的錯誤。我想這是正則表達式,但我不明白。

回答

1

這是一個正則表達式的事情,你的htaccess應該是這樣的:

RewriteEngine on 
RewriteRule ^([a-zA-Z0-9]+)$ profile.php?alias=$1 

$1在字符串末尾的第一子模式匹配,但你沒有表示任何的子模式。第一組括號是第一個子模式。

此外,您不妨來指示RewriteBase

RewriteEngine on 
RewriteBase/
RewriteRule ^([a-zA-Z0-9]+)$ profile.php?alias=$1 
+0

非常感謝您!你是我今天的英雄! – Peter 2011-05-24 17:45:18