Назад | Перейти на главную страницу

htaccess не работает

Я начинаю с Zend Framework, и на их сайте есть следующее:

http://framework.zend.com/manual/en/zend.controller.html#zend.controller.quickstart.go.rewrite

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

Как использовать это с пользой? Что мне делать, чтобы это работало? Теперь, когда я загружаю свой сайт, я получаю внутреннюю ошибку сервера 500 ... :)

Следует ли мне изменить REQUEST_FILENAME на что-то другое?

Я все еще новичок в htaccess и mod_rewrite ...

Я использую WAMPSERVER ...

Видимо, я упустил из виду самый очевидный ответ: я просто изменил это:

#LoadModule rewrite_module modules/mod_rewrite.so

к этому:

LoadModule rewrite_module modules/mod_rewrite.so

в файле httpd.conf. Теперь все работает.

внутренняя ошибка сервера означает, что в вашем .htaccess есть ошибка

Попробуйте удалить его, просто чтобы увидеть, исчезнет ли проблема. В этом случае добавьте свои строки, чтобы найти неисправный

Есть много способов получить ошибку 500 с помощью .htaccess. Возможно, вы установили неправильные разрешения для файла или в нем есть опечатка.

Думаю, я понимаю, к чему вы клоните. Вы в основном пытаетесь переписать любые запросы, которые не существуют, на другую страницу. Вместо того, что вы делаете, я бы попробовал это:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ /index.php [NC,L]

Это будет соответствовать только в том случае, если файл / каталог / ссылка не существует, и перепишем его так, чтобы он указывал на страницу индекса.

Вам следует проверить журналы ошибок вашего сервера для получения подробной информации. Для Apache это обычно %APACHE_DIR%\logs\error.log (в Windows) или /var/logs/apache/error.log в Linux.

Я добавил следующее правило перенаправления, перенаправление работает нормально, но URL-адрес в адресной строке не печатается или не выглядит должным образом.

RewriteRule ^ (a-z) .htm http: /localhost/info/mystuff.php? Tech = 1 доллар США [L]

Я хочу, чтобы мой URL был похож на http: // локальный / информация / w3calculator

но он печатается как http: /localhost/info/mystuff.php? tech = w3calculator

Я думаю, что это проблема с сервером, как мне это исправить?