2010-06-05 9 views
0

у меня есть это в моем .htaccess файл ...Mod_rewrite не работает должным образом

RewriteEngine on 
RewriteRule ^/invite$ /invite.html 

Это означало, чтобы позволить пользователю доступ этот URL:

http://mysite.com/invite 

и отобразить страницу invite.html. Я не хочу перенаправлять пользователя, но просто покажу им страницу invite.html с более удобным URL.

Однако, когда я просматриваю http://mysite.com/invite, я получаю ошибку 404, не найденную.

Есть ли что-нибудь, что я делаю неправильно? Я пробовал смотреть учебники для использования mod_rewrite, но я, кажется, делаю то, что они говорят мне тоже ...

Спасибо!

ответ

2

Я не думаю, что должно быть / в том, что RewriteRule:

RewriteEngine on 
RewriteRule ^invite$ invite.html 
+0

Ах отлично, работает сейчас :) Большое спасибо! –

0

Вы уверены, что AllowOverride All настроено для каталога, где находится файл .htaccess? Иначе файл может быть проигнорирован.

Если это не так, вы должны проверить файлы журнала Apache для получения дополнительных подсказок (/var/log/apache на Linux).

+0

Я на виртуальный хостинг, так что я не думаю, что я могу просматривать журналы Apache, и я не могу видеть, что мой собственные учетные записи в любом месте. –

+0

Ах! Я нашел свои журналы в cPanel, у меня много строк: «Файл не существует:/home/myuser/public_html/invite'. Что не имеет смысла для меня, из того, что я знаю '/ invite', не нужно существовать, поскольку это то, что я пытаюсь сделать ... –

0

Вам не хватает директивы RewriteCond. Это тот, который делает фактическое тестирование Cond ition для соответствия URL-адресу. RewriteRule вызывается только тогда, когда сопоставляется одна или несколько RewriteConds.

+0

Я не думаю, что это точно, вы можете иметь' RewriteRule' без 'RewriteCond' –

Смежные вопросы