Я пытаюсь создать веб-сайт PHP с чистыми URL-адресами с помощью Apache mod_rewrite, используя файл .htaccess. mod_rewrite, похоже, работает, однако он утверждает, что не может найти файлы на моем сервере, которые существуют.
В качестве базового теста мой файл .htaccess выглядит на данный момент так - переход на [mysite] / page должен перенаправлять на файл index.php:
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^page$ index.php
Afaik, я также настроил файл .conf соответствующим образом:
<Directory "/Users/myuser/Sites/">
Options Indexes MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Однако, когда я пытаюсь получить доступ к настройке URL-адреса через mod_rewrite (localhost / ~ myuser / mysite / page), я получаю следующее:
Not Found
The requested URL /Users/myuser/Sites/mysite/index.php was not found on this server.
Однако этот файл действительно существует, и это правильное место! В противном случае сайт работает нормально, если я перейду на localhost / ~ myuser / mysite / index.php, все будет работать нормально - за исключением, конечно, каких-либо чистых URL-адресов.
Кто-нибудь видел это раньше / есть идеи относительно того, что я делаю не так?
Вы должны добавить FollowSymlinks после Multiviews. Я написал учебник для всего этого здесь:
http://www.jermexpress.com/how-to-enable-mod_rewrite-on-snow-leopard-10-6/
Надеюсь, это решит вашу проблему. Ура! :)
Вам понадобится RewriteBase, если вы находитесь в своем userdir и подставляете относительный путь.