2011-03-12 18 views
0

我有這個在我的.htaccess困惑的方式這個的.htaccess規則應該在我的PHP工作

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteRule ^users/([^/]+)/?$ users.php?user=$1 [NC,L] 

header("Location: /users/" . $_SESSION['user']); 

它加載到瀏覽器這個

foo.bar/users/s2xi 

它給了我404 Not Found錯誤,我可以理解目錄用戶不存在的部分,但不是我的Rewrit eRule應該照顧那個?

編輯:我的完整的.htaccess

Options +FollowSymlinks 
RewriteEngine On 
RewriteBase/

RewriteCond %{HTTP_HOST} ^foo\.bar$ 
RewriteRule (.*) http://www.foo.bar/$1 [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

#RewriteRule ^([a-zA-Z0-9_\s-]+)/([a-zA-Z0-9_\s-]+)(/)?$ users.php?type=$1&user=$2 [NC,R] 
#RewriteRule ^users/?$ users.php [L] 
RewriteRule ^([^/]+)/?$ profile.php?user=$1 [NC,L] 
#RewriteRule ^users/([^/]+)/?$ users.php?user=$1 [NC,L] 
#RewriteRule ^(admin)/(.+)/?$ users.php?user=$1 [NC,L] 
RewriteRule ^admin/([^/]+)$ users.php?user=$1 [NC,L] 

#error codes 
RewriteRule ^/error/([^/]+)/ error.php?code=$1 [NC] 
+0

您的.htaccess位於何處?關於RewriteEngine? – webbiedave 2011-03-12 09:15:20

+0

它在根,並且我有一切配置很好。它只是這個小片段,這是不是跟我玩的很好 – Eli 2011-03-12 09:19:25

回答

1

更改你的.htaccess以下內容:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteRule ^users/([^/]+)$ users.php?user=$1 [NC,L] 

另外,還要確保users.php是在正確的目錄。如果它位於根目錄中,則可以使用:

RewriteRule ^users/([^/]+)$ /users.php?user=$1 [NC,L] 
+0

雅我的users.php是在根目錄。無論我嘗試什麼,我都無法讓瀏覽器將其作爲虛擬目錄。我更新了我的整個htaccess文件 – Eli 2011-03-12 09:23:12

+0

沒關係,我的愚蠢結尾沒有上傳我的更改到我的htaccess,所以我做了什麼都沒有真的附加到文件並上傳;( – Eli 2011-03-12 09:32:17

+0

很高興聽到你的問題解決了。 – 2011-03-12 09:46:21