2014-11-08 136 views
-1

我正在使用wamp(localhost)並且我的重寫規則不起作用。我試圖尋找解決方案,但找不到任何可行的方法。重寫規則不起作用

我想要做什麼是我想要讓用戶在

localhost/example/user1 

類型,我想在服務器向他們展示USER1的輪廓。就是我想要的服務器從

localhost/example/group.php?u=user1 

當用戶鍵入的第一個網址收集數據。

也就是說當用戶類型,

localhost/example/user1 

用戶應該能看到USER1的輪廓。

現在我已經使用下面的代碼,使其工作。但它說

在此服務器上找不到請求的URL/example/user1。

雖然帳戶存在。

我的.htaccess文件位於localhost/example目錄中。 我曾嘗試將其放置在根目錄中。我曾嘗試添加以下行

RewriteBase /example/ 

RewriteEngine On 

但似乎沒有任何工作。

RewriteEngine On 

RewriteRule ^([a-zA-Z0-9_-]+)$ group.php?u=$1 
RewriteRule ^([a-zA-Z0-9_-]+)/$ group.php?u=$1 
+0

是的,我確實證實....和亞它是工作。 @anubhava – bayblade567 2014-11-08 17:59:15

+0

錯誤瞭解到規則未執行,或者正則表達式與第一個參數中的任何內容不匹配。如果規則已執行,但重寫的文件不存在,則會顯示錯誤「在此服務器上未找到請求的URL /example/group.php」。您可以通過在示例目錄的.htaccess中放入以下規則來測試是否發生了任何事情:'RewriteRule ^(。*)$/donotmatchthis/$ 1 [R,L]'。如果你沒有被重定向到這個URL,那麼你的.htaccess文件沒有被讀取,或者你的規則無法訪問。 – Sumurai8 2014-11-08 19:01:22

+0

正在重定向到:http:// localhost/donotmatchthis/ – bayblade567 2014-11-08 19:13:40

回答

0

既然你用不同的用戶名不是你的問題建議你測試重寫規則,它是可能的正則表達式是不正確。不要試圖匹配您的用戶名中可能包含的每個字符。排除用戶名中不能出現的字符,即斜槓字符。

RewriteRule ^([^/]+)/?$ group.php?u=$1 [L] 
+0

但是爲此,它給出了「用戶不存在」甚至本地主機/示例和其他網址。 – bayblade567 2014-11-08 19:59:06

+0

你沒有把它放在示例文件夾中的.htaccess中? – Sumurai8 2014-11-08 20:19:06

+0

是的,我做到了。但是,無論我現在輸入什麼,我都會得到「用戶不存在」。 – bayblade567 2014-11-08 20:20:53