2012-06-09 85 views
1

我有這樣的代碼:htaccess的國防部重寫2個字

<IfModule mod_rewrite.c> 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 

    RewriteRule ^ראשי$ index.php?page=main [L,QSA,NC] 
    RewriteRule ^ניהול גלריות$ index.php?page=galleries [L,QSA,NC] 
    RewriteRule ^ניהול דפים$ index.php?page=pages [L,QSA,NC] 
    RewriteRule ^ניהול משתמשים$ index.php?page=users [L,QSA,NC] 
    RewriteRule ^הגדרות כלליות$ index.php?page=settings [L,QSA,NC] 
    RewriteRule ^דיווחים$ index.php?page=reports [L,QSA,NC] 

</IfModule> 

它讓一個500內部服務器錯誤,如果我只把線,像「דיווחים」它的工作原理,但是當我添加這些有兩個一個字像「ניהולדפים」這樣的詞不起作用。

你怎麼解決它? (也許問題是在2個字之間的空格?)

  • 即使我使用英語,語言不是問題,但它不起作用。
  • 我的地址是一樣/ניהולדפים
+0

這不是PHP的問題,可以考慮去掉php標籤。 –

+0

這可能是Apache預計英文事情的一個問題嗎? –

+0

「即使我使用英文,語言也不是問題。」 –

回答

2

什麼你正在寫有本質上是正則表達式。您可能想嘗試使用正則表達式元字符來指示空間的存在。

你爲什麼不嘗試這樣的事情 -

RewriteRule ^ברזילאי\sדן$ index.php?page=galleries [L,QSA,NC] 

The \s indicates whitespace.

+0

確定它刪除了500錯誤,但它只是在谷歌搜索網址 - 因爲有一個空間.. p.s +1寫在希伯來文我的名字:) –

+0

但我們刪除了與元字符的空間。你不會在URL中寫入'\ s'。只在你的'.htaccess'文件中。 – Lix

+0

ofcourse ..我的網址現在是這樣的:「localhost/CMS /דןברזילאי」,但是當我在瀏覽器網址上寫這個時,它會在谷歌上搜索它,就像搜索它的兩個詞一樣 –

1

mod_rewrite的支持日誌記錄,所以你可以可以添加它來獲取更多的細節:

RewriteLog "/var/log/apache2/rewrite.log" 
RewriteLogLevel 2 

還要檢查apache的error_log,因爲它通常會在500錯誤中寫入