Apache ve mod_rewrite tersbölüler

0 Cevap php

Ben (index.php, web-kök), tek bir komut dosyası aracılığıyla gelen tüm istekleri işlemek istiyorum.

Yani, şu anda ne olur: http://localhost/foo/bar/baz

http://localhost/index.php?url=foo/bar/baz: için (.htaccess) aracılığıyla Apache tarafından yönlendirilir


Bu iyi çalışıyor, ancak, Firefox'ta bunu yapmak mümkün duyuyorum: http://localhost/foo\ -> backslash fark.

Ve Apache yerine yapıyor: /index.php?url=foo\

Genel bir hata sayfası deyişi yayar:

Object not found! The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again.

If you think this is a server error, please contact the webmaster.

Error 404 localhost Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l mod_autoindex_color PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5.10.1

Doğrudan olacak: http://localhost/index.php?url=foo\ Ancak, sorunlar olmadan çalışır.


Ben internette gördüğüm tüm siteler incelikle tersbölüleri idare edebilmek gibi görünüyor (örneğin, http://stackoverflow.com/tags/php\\\\\).

I consider this behavior a bug and I want to force Apache to forward backslashes correctly. Here's my .htaccess file in its entirety:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [L]

Nasıl düzgün bu işi yapabilir?


Düzenleme: Ben sadece benim host üzerinde çalıştı ve bu onlar tarafından düzgün bir şekilde işlenir. Bana httpd.conf bazı ayardır düşündürüyor.

0 Cevap