2013-03-26 1 views
7

Хотелось бы, чтобы пользователь отправился в http://mysite.com/home, чтобы перенаправить его в http://mysite.com/page.php?id=home. Это то, что я вложил в мой .htaccess, но он, похоже, не работает.URL Rewriting не работает. Apache2

RewriteEngine On 
RewriteRule ^/(.+)$ page.php?id=$1 [NC,L] 

Он просто отправляет меня в/домашний каталог с приятным 404. Помощь приветствуется. Благодарю.

Edit:

Я пробовал некоторые переписывают я знаю работу, так что теперь я уверен, что это не то, что моя проблема. Я проверил с phpinfo() и да, mod rewrite работает, я настроил apache2 с помощью LAMP, я запускаю последнюю версию Linux Mint.

+2

включен mod_rewrite? – m79lkm

+0

Это, обновленный пост. –

ответ

21

Хорошо хорошо я исправил проблему, это то, как я это сделал.

sudo gedit /etc/apache2/sites-available/default

, а затем я изменил AllowOverride None к AllowOverride all в /var/www/ части файла

<Directory /var/www/> 
    Options Indexes FollowSymLinks MultiViews 
    AllowOverride all #This was 'None' before, change it to 'all' 
    Order allow,deny 
    allow from all 
</Directory> 
+0

Спасибо! @zeokila – frops

+0

@frops Рад, что это помогло! –

+0

Не забудьте перезапустить Apache после этого! –

3

Это работает для меня после удаления слэш:

RewriteEngine On 
RewriteBase /test 
RewriteRule ^(.+)$ page.php?id=$1 [NC,L] 
+0

Это все еще не работает для меня:/ –

+0

is page.php в вашем корневом каталоге документа? если вы не находитесь в корневом каталоге документа, вам также нужно будет добавить оператор RewriteBase – m79lkm

+0

, отредактированный мой ответ, в котором показан мой файл .htaccess. Надеюсь это поможет! – m79lkm