1

我有这个代码:

<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 个内部服务器错误,如果我只在行中添加一个像“דיווחים”这样的词,它就可以工作,但是当我添加像“ניהול דפים”这样的两个词时,它不起作用。

你怎么能解决它?(也许问题出在两个词之间的空格中?)

  • 即使我使用英语,语言也不是问题。
  • 我的地址就像 /ניהול דפים
4

2 回答 2

2

你在那里写的基本上是正则表达式。您可能想尝试使用正则表达式元字符来指示空格的存在。

你为什么不试试这样的东西 -

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

\s表示空格。

于 2012-06-09T17:49:12.020 回答
1

mod_rewrite 支持日志记录,因此您可以添加它以获取更多详细信息:

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

还要检查 apache 的 error_log,因为它通常会在 500 错误上写一些东西。

于 2012-06-09T17:53:19.163 回答