2012-06-07 2 views
1

У меня есть веб-сайт, который требует, чтобы mod-rewrite функционировал хорошо, но, похоже, он не работает на общем сервере Network Solutions, на котором мы работаем. Network Solutions обещает, что он установлен, но не будет предоставлять дальнейшую поддержку без дополнительной оплаты.Mod-rewrite не работает на сервере сетевых решений

Я разместил простой тест в следующей папке, содержащей два файла. Первый из них, «.htaccess» содержит следующий текст:

RewriteEngine On 
RewriteRule ^link([^/]*).html$ rewrite.php?link=$1 [L] 

второго является PHP скрипта, который проверяет его, доступный здесь: http://www.oceanhousefloridakeys.com/testmr/rewrite.php

Все, что я вижу в том, что установлено модах-переписывает (без сообщения об ошибках), но rewriteRule не работает. Кто-нибудь может понять, почему этот скрипт не работает ... есть ли что-нибудь, что я могу сделать, чтобы запустить его, или Network Solutions не сообщает правду?

+0

ли mod_rewrite * включено *? У вас есть доступ к командной строке? Я считаю, что вы используете 'a2enmod rewrite', чтобы включить его. Кроме того, знаете ли вы, что для параметра «AllowOverride» установлено значение «All» для этого каталога в вашей конфигурации Apache? – Travesty3

+0

@ Travesty3: «Включен ли mod_rewrite?» Это большой вопрос ... Network Solutions клянется, что он включен, но поскольку этот простой тест выше не работает, я не полностью им верю. К сожалению, у меня нет доступа к командной строке, так как я на общем сервере, поэтому я не могу дать вам больше отзывов. – Michael

+1

Вы пробовали его с помощью ключевого слова в регулярном выражении? Как '^/link ([^ /] *). Html $'? Когда он находится в подпапке: вы установили 'RewriteBase' соответственно? – vstm

ответ

4

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

RewriteEngine On 
RewriteBase /testmr/ 
RewriteRule ^link([^/]*).html$ rewrite.php?link=$1 [L] 
Смежные вопросы