Mod_rewrite, чтобы ПОКАЗАТЬ редирект с домена подстановки - PullRequest
0 голосов
/ 22 августа 2010

Я собираюсь выкинуть mod_rewrite на обочину. Разговор о "не играет хорошо с другими". Есть ли какие-нибудь знахарки, которые могут помочь мне с этим?

У меня есть подстановочные знаки DNS, настроенные для идентификации пользователей. Я хотел бы перейти от:

http://username.domain.com/foo/bar

до:

https://www.domain.com/qux/waldo/username/foo/bar

Возможно ли это?

Я занимаюсь разработкой с codeigniter, и он уже имеет свои собственные директивы mod_rewrite в .htaccess для удаления index.php.

Вот что у меня есть:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{HTTP_HOST} ^(www\.)?[^.]+\.idseal\.local.*$
RewriteRule (.*) /site/assign/$1

#Removes access to the system folder by users.
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]

#Checks to see if the user is attempting to access a valid file,
#such as an image or css document, if this isn't true it sends the
#request to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

1 Ответ

0 голосов
/ 22 августа 2010

Первая строка проверяет, находимся ли мы в главном домене или нет, вторая строка будет соответствовать, если есть www или нет, если есть www, он будет удерживаться на% 1, таким образом, не внося изменений, если есть inst, данныебудет в% 2 и будет переписывать просто отлично.

Я не уверен на 100%, что это сработает для ваших нужд, но попробуйте и сообщите об этом, и я постараюсь помочь вам с тем, что я могу.

RewriteEngine on

RewriteCond %{http_host} !^www.domain.com [NC]
RewriteCond %{http_host} ^(www.)?([^.]+).domain.com [NC]
RewriteRule (.*) https://www.domain.com/qux/waldo/%2/$1
...