ExpressionEngine MSM网站上的htaccess

时间:2012-11-05 07:33:50

标签: expressionengine

我使用MSM插件在两个不同的域名上运行两个ExpressionEngine站点。站点1包含所有系统文件等,站点2位于站点1的子文件夹中。我的问题是如何让网站2在URL中没有index.php文件并且仍然可以工作?

目前我在网站1的htaccess文件夹中有这个,网站一个很好,网站二没有:

<IfModule mod_rewrite.c>
    RewriteEngine On

    # Removes index.php
    RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /index.php/$1 [L]

    DirectoryIndex index.html index.php

    # Redirect non-www urls to www
    RewriteCond %{HTTP_HOST} !^www\.
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

    # If 404s, "No Input File" or every URL returns the same thing
    # make it /index.php?/$1 above (add the question mark)

3 个答案:

答案 0 :(得分:3)

同样的.htaccess应该适用于两个站点。重写只涉及index.php文件,该文件是每个站点根目录的本地文件。

我从.htaccess看到的一个可能的问题是,您将非www网址重定向到www。您的第二个域设置是否与www一起使用?如果没有,这显然是一个问题。

答案 1 :(得分:1)

我在主站点和辅助站点都使用这个htaccess文件,一切都很好。

AddType video/ogg .ogv
AddType video/mp4 .mp4
AddType video/webm .webm

AcceptPathInfo On

Options -Indexes

<IfModule mod_rewrite.c>
RewriteEngine On

Options +FollowSymLinks

# Looks for files and directories that do not exist
# and provide the segments to the index.php file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^/index.php
RewriteCond $1 !.(css|js|png|jpe?g|gif|ico)$ [NC]
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>  

答案 2 :(得分:1)

尝试将# Redirect non-www urls to www重写改为 # Removes index.php重写之前。

在删除index.php重写之前进行www重写已经在过去和我的一个站点的快速测试中给我带来了问题,在删除index.php之前放置www重写时访问www版本重写导致index.php不能从URL中删除。