2015-07-29 3 views
1

У меня возникла проблема с размещенным на GoDaddy сайтом, который не является «основным» сайтом учетной записи. Путь сайта на сервере: webroot/FBM/.htaccess RewriteRule на дополнительном сайте GoDaddy

Когда вы открываете сайт, www.mysite.com открывает файл по умолчанию (index.php), расположенный по адресу webroot/FBM/index.php.

Тонны исследований помогли мне найти, что мне нужно было использовать «Параметры -Мультивы» в первой строке моего файла .htaccess, чтобы любой RewriteRule работал вообще (опять же, только в GoDaddy размещался «альтернативный», сайт).

В настоящее время мой файл .htaccess выглядит следующим образом:

Options -Multiviews 
Options +FollowSymLinks 
RewriteEngine On 
RewriteRule ^bonus/(.*)$ /bonus.php?query=%1 

Когда я использую этот файл .htaccess,

  • www.mysite.com/bonus/ и www.mysite.com/ bonus/Stuff работает так, как вы ожидали (открывает /bonus.php с параметром или без него).
  • www.mysite.com/bonus.php, похоже, работает сейчас (я думаю, что-то в этом текущем файле .htaccess исправил его), но сначала он дал сообщение, похожее на сообщение, для прямого доступа к файлу php через:
  • www.mysite.com/bonus не работает на всех, но дает довольно странное сообщение:

запрошенный URL/FBM/бонус не был найден на этом сервере.

Поскольку/FBM не является частью URL-адреса, я бы не ожидал увидеть это как часть сообщения об ошибке.

Это простой пример использования, чтобы отобразить проблему, с которой я столкнулся со всеми моими «альтернативными» сайтами GoDaddy. Другие проблемы, как правило, намного сложнее и включают перенаправление всех вызовов на сайт на index.php. Однако для этого конкретного проекта мне не нужно это решать, и я чувствую, что, если я смогу это решить, ответ будет на других сайтах.

Кстати, этот файл .htaccess завершился с ошибкой в ​​моей среде разработки (без перезаписи в bonus.php, хотя bonus.php доступен непосредственно через URL-адрес).

Вся концепция перезаписи URL-адресов и регулярных выражений чужда мне, а чтение через google и подобные вопросы в stackoverflow не помогает. Я изучаю эту проблему в течение нескольких месяцев, и я очень ценю любую помощь.

ответ

0

У меня есть решение, но мне оно не очень нравится. Я добавил еще одну линию для обработки случай, когда пользователь не включает в себя слэш:

Options -Multiviews 
Options +FollowSymLinks 
RewriteEngine On 
RewriteRule ^bonus$ /bonus.php 
RewriteRule ^bonus/(.*)$ /bonus.php?query=%1 

я остановился на том, что, когда эта линия также не работает:

RewriteRule ^bonus/?(.*)$ /bonus.php?query=%1 

Я до сих пор довольно озадачен поведением Apache на GoDaddy для дополнительных размещенных доменов.

Еще приветствует лучший ответ.