как мне заставить мой mod_rewrite работать? - PullRequest
0 голосов
/ 05 августа 2010

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

В любом случае, мой вопрос: почемумой мод переписать не работает?Я следовал примерно за 3 учебниками и провел некоторое время, читая форумы и предыдущие вопросы на этом сайте, и не мог заставить ни один из них работать.Я попытался сделать это через мой файл vhosts.conf (я думаю, что он также известен как httpd.conf на некоторых установках linux) и через .htaccess

Вот мой поданный .htaccess код

Options +FollowSymLinks
Options +Indexes
RewriteEngine On

RewriteBase /

RewriteRule ^/article/([0-9]+)$ article.php?art_id=$1 [NC,L]

Вот ссылка, которую я пытаюсь заставить работать: mysite.com/article?art_id=$1

Если честно, у меня есть лишь небольшая подсказка о том, как работает mod_rewrite.

У меня установлен mod_rewrite (я не управляю сервером, но у компании, в которой я работаю, также есть службы хостинга, вот так у меня есть доступ к vhosts.conf, но я не настроил сервер, и, насколько я знаю,парень делает это профессионально и настроит это правильно)

Я вставил это, чтобы посмотреть, смогу ли я заставить его работать, и он перенаправил меня на мою домашнюю страницу (думаю, это означает, что он работает)

# Options +FollowSymLinks 
RewriteEngine on 
RewriteRule ^fakepage\.html$ http://yoursite.com/ [R,L]

Ответы [ 2 ]

1 голос
/ 05 августа 2010

По крайней мере, в том, что касается вашего .htaccess файла, использование имеющегося у вас правила не сработает, потому что на входе в RewriteRule никогда не будет начальной косой черты. Вместо этого правило должно выглядеть примерно так:

RewriteRule ^article/([0-9]+)$ article.php?art_id=$1 [NC,L]

Однако то, что у вас должно было сработать, когда вы попробовали это на виртуальном хосте (при условии, что вы перезапустили сервер), поэтому я не уверен, что это действительно проблема. Как перезапись не работает? Вы получаете 404 ошибки вместо того, чтобы быть перенаправлены в файл, который вы ожидали?

0 голосов
/ 05 августа 2010

Тим - это правильно с косой чертой в начале вашего RewriteRule.

При попытке выяснить перезаписи может быть полезно включить регистрация :

RewriteLog "/var/www/mysite.com/rewrite.log"
RewriteLogLevel 9
...