开发者

ExpressionEngine: mod_rewrite directory to subdomain, while removing /index.php/

In ExpressionEngine, what’s the best way to mod_rewrite a directory to a subdomain, while keeping index.php out of the picture?

For example:

http://www.domain.com/index.php/group/template -> group.domain.com/template

I’ve seen variations that take ANY group and rewrite them to subdomains, but I only need one.

I’ve been tasked with porting over a subsite from a different server (that was also running 开发者_如何转开发EE). Normally, I’d just redirect group.domain.com to domain.com/group (index.php removal was already working), but that’s been deemed an unacceptable solution. And of course, this is time-sensitive.

I’ve been diving into Google and the EE docs/wiki for going on twelve hours and I’m starting to go cross-eyed. Can anyone give me a hand?

Thanks in advance.


Here's how I would craft your .htaccess file:

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_URI} ^/(group|group/.*)$
    RewriteRule ^(.*)$ http://group.domain.com/template/$1 [L]

    RewriteCond %{REQUEST_METHOD} !=POST
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>

This example uses the "File and Directory Check" Method of removing index.php from the URL and uses a RewriteCond Directive to instruct Apache to handle the requests for the "group" directory and all its sub-directories differently.

Any links to domain.com/group/template will be redirected to group.domain.com/template/.

If you care about letting crawlers know your content has moved and want to make the transition as seamless as possible, you can add a 301 Redirect to your RewriteRule:

    RewriteCond %{REQUEST_URI} ^/(group|group/.*)$
    RewriteRule ^(.*)$ http://group.domain.com/template/$1 [R=301,L]

This will ensure that users and search engines are directed to the correct page.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜