2

我有 5 个域都指向同一个服务器,出于 SEO 的目的,我设置了一个规范的元链接来指定主域。

我的问题是,如何从 url 中删除 index.php 以及 301 将我的所有域重定向到主域?

这是我删除 index.php 的 .htaccess

DirectoryIndex index.php
RewriteEngine on

RewriteCond $1 !^(index\.php|robots\.txt|sitemap\.xml)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]

ErrorDocument 404 /index.php

这是我的 .htaccess 到 301 重定向

RewriteEngine On
RewriteBase /

RewriteCond %{SERVER_NAME} !^www.example.com$
RewriteRule .* http://www.example.com%{REQUEST_URI} [R=301,L]

我试图合并这两者,但后来我得到了一些奇怪的结果,它会重定向域,但将整个 url 作为页面的参数......

4

1 回答 1

5

您需要在路由规则之前进行重定向(将所有内容发送到/index.php

RewriteEngine On

RewriteCond %{SERVER_NAME} !^www.example.com$
RewriteRule .* http://www.example.com%{REQUEST_URI} [R=301,L]

RewriteCond $1 !^(index\.php|robots\.txt|sitemap\.xml)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]

ErrorDocument 404 /index.php
DirectoryIndex index.php
于 2013-09-13T02:26:29.377 回答