проблема поддомена с подстановочными ссылками на другие страницы - PullRequest
0 голосов
/ 09 декабря 2011

У меня проблемы со ссылками на страницы при использовании поддомена с подстановочными символами, и я хотел бы немного помочь в поиске решения.

Я хочу, чтобы пользователи имели свой собственный поддомен для просмотра содержимого своего веб-сайта, так что еслипользователь вводит в «user1.domain.com», сервер будет иметь правило перезаписи, которое направляет запрос на страницу index.php в корневом каталоге.Эта страница index.php будет использоваться для всех поддоменов и будет обслуживать содержимое из базы данных на основе поддоменов, переданных в строке запроса.

Эта часть отлично работает и обслуживает содержимое из index.phpкак это должно.Когда страница index.php загружается, она включает меню (HOME | RENTALS | CONTACT US).Проблема возникает, когда я нажимаю на ссылку меню, чтобы перейти на другую страницу.URL-адрес изменяется, но содержимое страницы не меняется.

Вот пример: если я нажимаю «АРЕНДА», я хочу, чтобы пользователь зашел на страницу rentals.php и отобразил аренду, доступную для субдомена «user1» ... но вот что происходит:

Сценарий связи 1:

<a href="http://user1.domain.com/rentals.php">RENTALS</a>   --> URL address bar changes to "user1.domain.com/rentals.php" but the page doesn't change, it still stays on the index.php content

Сценарий связи 2:

 < a href="rentals.php" >RENTALS< /a >   --> URL address bar changes to "user1.domain.com/rentals.php" but the page doesn't change, it still stays on the index.php content

Сценарий связи 3 (если я жестко закодирую домен и опускаю субдомен подстановочного знака, ссылка работает):

<a href="http://www.domain/public_site/rentals.php">RENTALS</a>   --> URL address bar changes to "http://www.domain.com/public_site/rentals.php" AND IT WORKS, the rentals.php page loads and serves up the content.

Проблема со сценарием 3 заключается в том, что я хочу, чтобы URL читал: "user1.domain.com/rentals.php"

Мне интересно, можно ли это настроить впереписать условие, но я не могу понять его.

Если кто-нибудь может помочь, я был бы признателен!

Вот моя структура каталогов:

ROOT
  |
  PUBLIC_SITE
     |
     index.php
     rentals.php
     contactus.php

Вот правило переписывания apache (работает 1-е правило. 2-е правило, которое я добавил в надежде решить мою проблему, но оно не решило проблему):

<IfModule mod_rewrite.c>
   Options +FollowSymLinks
   Options +Indexes
   RewriteEngine On

   ####Rewrite subdomain request to public_site/index.php
   RewriteCond %{HTTP_HOST} !www.domain.com$ [NC]
   RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).domain.com [NC]
   RewriteRule ^(.*)$  /public_site/index.php?subdomain=%2 [L]

   #### Rewrite rule for rentals.php page
   RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).domain.com/rentals.php [NC]
   RewriteRule ^(.*)$  /public_site/rentals.php?s=%2 [L]

</IfModule>

1 Ответ

0 голосов
/ 10 декабря 2011

понял это самостоятельно после переписывания ...

просто поместите этот код перед правилами "основного домена":

#### Rewrite rule for rentals.php page
   RewriteCond %{REQUEST_URI} ^/rentals.php?$ [NC]
   RewriteRule ^(.*)$  /public_site/rentals.php [L]
...