Я начинаю с 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
Я думаю, что это проблема с сервером, как мне это исправить?