2014-12-05 2 views
1

Я пытаюсь рисовать urlrewriting. И я все еще не понимаю, думаю. Так я попытался это:Htacces url rewriting не работает

Options -Indexes +ExecCGI 
AddHandler cgi-script .cgi .pl 
php_flag display_startup_errors on 
php_flag display_errors on 
php_flag html_errors on 
php_flag log_errors on 
Options -MultiViews 
RewriteEngine On 
RewriteBase/
RewriteRule ^home/? index.php 
RewriteRule ^forum/?$ forum.php [L,NC] 
RewriteRule ^forum/([a-z0-9-]+)/?$ forum.php?catagory=$1 [L,QSA,NC] 
RewriteRule ^login/? loginpage.php 
RewriteRule ^register/? registerpage.php 
RewriteRule ^servers/? servers.php 
RewriteRule ^profile/? profile.php 
RewriteRule ^profile/([A-Za-z0-9-]+)/?$ profile?user=$1 
RewriteRule ^members/? memebers.php 

И я явно не работаю, моя страница не будет даже загрузить нормальную больше

Когда я использовать обычный URL:

forum/?catagory=test 

И это работает очень хорошо и покажет мне все. Я не понимаю, почему переписывание URL не работает! Даже попробовал генератор и некоторые другие вещи. Это не сработает

+0

у вас есть «RewriteEngine On» и «RewriteBase /' – CIRCLE

+0

Первое, что да. Второе, что я добавил сейчас, но это не помогло. – Sjenkie

+0

Что произойдет, если вы перейдете на '/ forum/test'? вы получаете ошибку 404 или загружаете forum.php без категории? –

ответ

2

Turn MultiViews вариант выключения:

Options -MultiViews 
RewriteEngine On 
RewriteBase/
RewriteRule ^forum/?$ forum.php [L,NC] 
RewriteRule ^forum/([a-z0-9-]+)/?$ forum.php?catagory=$1 [L,QSA,NC] 

Вариант MultiViews используемый Apache's content negotiation module, который работает до того mod_rewrite и и делает Сервер Apache соответствует расширению файлов. Таким образом, /file может быть в URL-адресе, но он будет обслуживать /file.php.

+0

Не работает для меня, извините за поздний ответ. .. – Sjenkie

+0

Я добавил все свои .htacces в вопрос. Страница test.com/forum/test не работает. Я получаю это: http://prntscr.com/5drsb8. Я должен получить что-то вроде этого: http://prntscr.com/5drsg3 – Sjenkie

+0

ok выглядит как проблема не получает ваш css/js. Это связано с использованием относительных ссылок для css/js/images. Вы можете попробовать добавить это в HTML-заголовок своей страницы: '', чтобы каждый относительный URL был разрешен с этого URL-адреса, а не URL-адрес текущей страницы. – anubhava

0

Во-первых, вы включили RewriteEngine On? Во-вторых, включен ли модуль перезаписи? Сделайте phpinfo();, чтобы проверить это и answer.

Таким образом:

RewriteEngine On 
RewriteBase/
RewriteRule ^forum/?$ forum.php 
RewriteRule ^forum/([A-Za-z0-9-]+)/?$ forum.php?catagory=$1 [L] 

Эта страница может помочь вам: URL Rewriting for Beginners

+0

У меня включен двигатель, и он включен: как сказано, что «/ forum /? Catagory = test» работает. Я пробовал ваш код, я все еще не работаю. – Sjenkie

+0

У вас есть ошибка в вашем журнале, который может помочь? –

+0

Да, я могу получить за все, что загружает ошибку, которую он не может загрузить: «Не удалось загрузить ресурс: сервер ответил статусом 404 (не найдено)« – Sjenkie