Перезапись URL не работает на локальном хосте в Ubuntu - PullRequest
0 голосов
/ 02 февраля 2012

Итак, я запускаю lampp на Ubuntu 11.10, и у меня возникает следующая проблема

мне нужен этот URL: локальный / MyName / oefeningenPHP / CMS / index.php? голова = о

переписано в: локальный / MyName / oefeningenPHP / К / о

URL довольно грязный, потому что у меня много папок с различными упражнениями PHP для школы.

My .htacces находится в: локальный / MyName / oefeningenPHP / К

, поскольку cms - это мой корень сайтов.

.htacces содержит следующий код:

<IfModule mod_rewrite.c>

Options +FollowSymLinks
RewriteEngine on

RewriteRule ^/([a-z]+) /index.php?head=$1 

</IfModule>

Но возвращает ошибку 404.

Кроме того, я уверен, что модуль перезаписи загружается, поскольку он не комментируется в файле http.conf

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

Ответы [ 2 ]

1 голос
/ 06 августа 2013

Если вы уже выполнили команду перезаписи sudo a2enmod, но перезапись вашего URL не работает.
Чтобы файлы .htaccess работали должным образом, вам нужно отредактировать этот файл:

Step1 : sudo vi /etc/apache2/sites-available/default

Step2 : Look for a section that looks like this: 
    <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
                # Uncomment this directive is you want to see apache2's
                # default start page (in /apache2-default) when you go to /
                #RedirectMatch ^/$ /apache2-default/
        </Directory>
You need to modify the line containing AllowOverride None to read AllowOverride All.
step 3 : sudo /etc/init.d/apache2 reload
1 голос
/ 02 февраля 2012

try

RewriteRule ^([a-z]+) index.php?head=$1 [L]

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

Чтобы включить ее, найдите строку с надписью

AllowOverride None

и измените ее на

AllowOverride All
...