阻止.htaccess从root重定向到root / index

时间:2019-07-18 20:12:03

标签: .htaccess redirect

我已经设法以某种方式将我的网站从domain.com/重定向到domiain.com/index,我希望有人可以看看我的.htaccess代码,看看我出了什么问题。

快速的背景故事

  1. 我有一个旧网站,所有文件都是html
  2. 然后我将所有这些文件捆绑到一个名为old的文件夹中,并告诉所有 bots通过robots.txt进行抓取。 robots.txt保留在根目录中 文件夹
  3. 然后将一堆.php文件添加到根文件夹中。每个文件都有自己的rel =“ canonical”标记,并带有href =“ http://domain-name.com/file-name”-主页rel =“ canonical”的结尾为/ index
  4. 在根文件夹中,我创建了一个.htaccess文件:
    • 将.html文件重定向到正确的.php文件
    • 将index.php重定向到root(这似乎不起作用)
    • 将www重定向到非www
    • 删除php文件扩展名

例如,我尝试重新排序代码,以防万一我尝试在正确重定向之前删除扩展名,但似乎无济于事。

我尝试着尝试如何将索引重定向到索引,但似乎没有任何效果。

要查看重定向路径是什么样的,我打开了Chrome开发人员工具并选择了网络。从那里我输入

http://www.domain-name.com/index.html

重定向路径如下所示

http://www.domain-name.com/index.html

http://domain-name.com/index.html

http://domain-name.com/index (this is my index.php file)

我的htaccess代码

301将旧HTML重定向到新PHP

Redirect 301 /index.html http://domain-name.com/index 
Redirect 301 /about_us.html http://domain-name.com/about
Redirect 301 /services.html http://domain-name.com/services

将index.php重定向到root

RewriteCond %{THE_REQUEST} ^.*/index.php 
RewriteRule ^(.*)index.php$ http://domain-name.com/$1 [R=301,L]

将www重定向到非www

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.domain-name\.com [NC]
RewriteRule ^(.*)$ http://domain-name.com/$1 [L,R=301]
</IfModule>

删除php文件扩展名

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [NC,L]

我不确定自己做错了什么,但希望您能帮助我理解为什么主页重定向到

http://domain-name.com/index

谢谢您的时间

1 个答案:

答案 0 :(得分:0)

更改Redirect 301 /index.html http://domain-name.com/index

Redirect 301 /index.html http://domain-name.com/

文件index.php是您的DirectoryIndex,因此请求http://domain-name.com/加载/index.php

如果没有,请添加到.htaccess文件指令的顶部:DirectoryIndex index.php