我使用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)
答案 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中删除。