我有5个域都指向同一个服务器,为了SEO目的,我设置了一个规范主域名的规范元链接。
我的问题是,如何从网址中删除index.php,并将301我的所有域名重定向到主域名?
这是我的.htaccess删除index.php
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]
我试图将两者合并,但后来我得到了一些奇怪的结果,它会重定向域名,但将整个网址作为页面的参数...
答案 0 :(得分:3)
您需要在路由规则(将所有内容发送到/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