Apache mod_rewrite - переписывание с субдомена на основной домен - PullRequest
0 голосов
/ 01 декабря 2009

Я хочу перенаправить URL-адрес abc.xyz.com/123 на xyz.com. Таким образом, файл, к которому будет осуществляться доступ, будет index.php из xyz.com. Этот index.php должен иметь в своем распоряжении и abc, и 123 (поэтому 123 будет $ _SERVER ['PHP_SELF']], а abc выйдет из $ _SERVER ['HTTP_HOST']), чтобы включить соответствующую обработку.

abc.xyz.com уже переходит на xyz.com (хотя конфигурация выполняется моим поставщиком услуг), и abc может быть извлечен из $ _SERVER ['HTTP_HOST']. Однако abc.xyz.com/123, похоже, ищет папку с именем 123 в корневом каталоге xyz.com и обнаруживает ошибку 404, когда не может найти ее.

Может кто-нибудь любезно дать мне строку (и), которую нужно поместить в .htaccess, чтобы abc.xyz.com/123 мог вызывать index.php для xyz.com (с 123 доступным, хотя $ _SERVER ['PHP_SELF'] ? Я не могу заставить его работать.

Большое спасибо за потраченное время!

Ответы [ 2 ]

0 голосов
/ 03 декабря 2009

Спасибо, Казар, за предложение. Я нашел решение для моей проблемы перенаправления подкаталога поддоменов выше, вот оно:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteCond %{REQUEST_URL} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
0 голосов
/ 01 декабря 2009

Возможно что-то вроде:

RewriteEngine On
RewriteCond %{HTTP_HOST} .xyz.com  [NC]
RewriteRule ^(.*)$ index.php?param=$1 [L,QSA]

Итак, если HTTP-хост содержит .xyz.com (наличие точки спереди гарантирует, что это происходит только для поддоменов), то все отправляется в index.php с тем, что находится после того, как домен присоединен как $ _GET [ 'пары'].

...