2011-11-20 50 views
0

mywebsite.com/123應通過.htaccess顯示內容mywebsite.com/project.php?id= 123 - 不幸的是我昨天因爲原因改變了.htaccess rewriterule,現在重定向不起作用(它進入我們的404錯誤頁面)。你能看到我在這裏做錯了嗎?非常感謝!mywebsite.com/project.php?id=123應通過.htaccess重定向到mywebsite.com/123

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([a-z0-9\-_]+)/?$ $1.php [NC,L] 
+1

請問'123.php'真的存在嗎?因爲這就是你的代碼片段重定向的地方 –

回答

2

最後一行更改爲這應該工作:

RewriteRule ^([a-z0-9\-_]+)/?$ project.php?id=$1 [NC,QSA,L] 

,如果你想在正則表達式規則不趕包含字母字符的URL,使用

RewriteRule ^([0-9\-_]+)/?$ project.php?id=$1 [NC,QSA,L] 

併爲您的新要求:

RewriteRule ^([0-9\-_]+)/?$ project.php?id=$1 [NC,QSA,L] 
RewriteRule ^([a-z\-_]+)/?$ new.php?id=$1 [NC,QSA,L] 
+0

然後他應該更新他的鏈接去mysite.com/number而不是mysite.com/project.php?id=number – abcde123483

+0

這兩個都是完美的!我需要添加一個條件,但我應該在原始文章中列出。雖然我們需要按照說明重新指定,但我們也有實際的php頁面,例如「new.php」,例如轉到「/ new」。所以我需要運行你上面寫的兩條規則 - 我怎麼才能把它們都起作用? – JoeW

+0

是的,ulvund,這是如何建立網站...但昨天改變了htaccess後,我失去了功能,並沒有記錄的變化(我知道小學生的錯誤)。 – JoeW