2012-06-09 67 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错误中写入