2013-02-24 76 views
0

這是我的域名的頁面:www.mydomain.com/en/stats.php爲什麼不重寫這個URL?

我希望它看起來像這樣:www.mydomain.com/en/statistics/players

這是很簡單,但由於某些原因,下面的htaccess代碼不起作用。

Options +FollowSymLinks 

RewriteEngine On 
RewriteRule ^/statistics/players stats.php [R=301,L,QSA] 

當我嘗試打開搜索引擎優化版本時,出現404錯誤。當我使用常規URL時,該頁面可以正常打開。我究竟做錯了什麼?

+0

對於正則表達式'^'手段開始線,但是你的網址以'''/''''開頭,所以它不會匹配。嘗試從你的代碼中刪除'^ /',或者使你的正則表達式更加精確'^/en/foobar/baz/en/foo.php' – x539 2013-02-24 16:25:23

回答

0

我認爲它需要:

RewriteEngine On 
RewriteRule ^en/statistics/players en/stats.php [QSA] 

R=301意味着它將轉而執行重寫的重定向並嘗試重定向到/stats.php其犯規存在,我猜。

L標誌意味着這是最後的重寫規則,將處理這個請求,在這種情況下,我懷疑是你想要的。如果/en/stats.php中有更多的重寫規則,它們將不會被處理。

+0

對。 301在那裏是錯誤的。我已經刪除了它,因爲它沒有必要。但是,無論我是否使用您的版本,它仍然不起作用。 – jovan 2013-02-24 16:19:38

+0

您需要確保您也考慮到URL的en部分。我雖然不是100%確定這會起作用,但可能需要更多調整,但我無法測試 – cowls 2013-02-25 10:18:59

0

URL可能沒有前導斜槓。嘗試沒有或可選的斜槓。此外,您必須檢查領導en,當你在一開始

RewriteRule ^/?en/statistics/players /en/stats.php 
0

到底是什麼工作錨你的模式是這樣的:

RewriteRule en/statistics/players en/stats.php [NC,L]