2013-06-30 53 views
0

我有下面的.htaccess規則在我的根文件夾: -的.htaccess URL重寫在根文件夾中的文件名衝突的

RewriteEngine On 
RewriteRule ^([^/]*)$ /user.php?user=$1 [L] 
RewriteRule ^project/([^/]*)$ /project.php?id=$1 [L] 

所以,這基本上做到 - >http://example.com/user.php?user=stackoverflow將可從http://example.com/stackoverflow還有,但是,當我瀏覽http://example.com/login.php或任何我的網頁,它給內部服務器錯誤500

當我我使用http://example.com/user/stackoverflow,所有東西正常工作

我的猜測是,URL重寫在根文件夾中衝突的,如果是,我怎麼能禁用文件名確認爲,或任何其他更好的規則。

更新時間:規則[仍然沒有工作]

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^([^/]*)$ /user.php?user=$1 [L] 
RewriteRule ^project/([^/]*)$ /project.php?id=$1 [L] 

感謝

回答

0

你需要重寫唯一沒有存在的路徑。使用下面的.htaccess規則

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^project/([^/]*)$ /project.php?id=$1 [L]  
RewriteRule ^([^/]*)$ /user.php?user=$1 [L] 
+0

不工作我仍然得到內部服務器錯誤500 –

+0

網址是什麼做你的錯誤爲 – DevZer0

+0

ERROR1:http://example.com/file.php [現有文件 - 內部服務器錯誤] –