Переписывание Apache Url не будет работать - PullRequest
0 голосов
/ 25 октября 2009

В файле httpd.conf у меня есть AllowOverride FileInfo. В файле .htaccess на верхнем уровне моего веб-сервера со всеми остальными файлами у меня есть это:

RewriteEngine On
RewriteRule ^downloads/?$ index.php?page=downloads [L,NC]

Но это не работает. mywebsite / downloads и mywebsite / downloads / всегда дают 404 не найдено. Есть идеи почему? Благодарю. (mywebsite / index.php? page = загрузки работает работает).

И я перезагружаю apache каждый раз, когда меняю его.

И когда я поместил приведенный выше код в httpd.conf, веб-сайт даже не загрузится, просто будет пустым, вращающимся колесом сафари навсегда.

Хорошо, если я просто сделаю RewriteEngine On, но если я сделаю что-нибудь еще (RewriteBase, RewriteRule), веб-браузер потратит целую вечность, пытаясь загрузить и, наконец, выдав эту ошибку:

Safari не может открыть страницу «http://mk12.gotdns.com/”, поскольку сервер, на котором расположена эта страница, не отвечает.

Кто-нибудь знает, что не так?

РЕДАКТИРОВАТЬ: я могу сделать, например, CSS-файлы, запрещенные с перезаписью, и это работает, но любое правило, которое идет от загрузки до index.php? Page = загрузки делает сервер не отвечает (см. Выше), Неважно, на какой странице сайт вообще не будет загружаться. Есть идеи ..?

Ответы [ 4 ]

1 голос
/ 25 октября 2009

Лучший способ отладки правил перезаписи - включить ведение журнала перезаписи, чтобы вы могли видеть, что происходит не так.

0 голосов
/ 25 октября 2009

сработало !! Я поставил код в неправильном месте. Это было в httpd.conf, но в конце. Переместите его в и это хорошо. Спасибо за вашу помощь!

РЕДАКТИРОВАТЬ: Кроме того, я обнаружил, что это не будет работать, если флаги такие: [L, NC]. Это должно быть [L,NC] (без пробелов).

Итак, две проблемы, когда этого не было внутри , и между флагами было пространство Надеюсь, это поможет кому-то еще в будущем.

0 голосов
/ 25 октября 2009

Я бы попытался удалить косую черту и вопросительный знак после загрузки и косую черту перед index.php.

RewriteEngine On
RewriteBase /
RewriteRule ^downloads$ index.php?page=downloads.
0 голосов
/ 25 октября 2009

Вы устали добавлять косую черту перед "загрузкой", как показано ниже

RewriteRule ^/downloads/?$ index.php?page=downloads

РЕДАКТИРОВАТЬ: Попробуйте код ниже:

RewriteEngine On
RewriteBase /
RewriteRule ^downloads/?$ /index.php?page=downloads
...