htaccess url重写指导

时间:2015-09-27 21:27:25

标签: .htaccess mod-rewrite

我出现两次列出的网站链接时出现问题,例如,www.example.com/example.com/index.php?etc....时应该只显示www.example.com/index.php?etc....

我的链接是相对的,显示为:/index.php?etc...

我搜索了我的网页链接,并没有看到这些错误链接是如何生成的,因为它们本身并不是我自己所知道的最好的链接。

所以...我正在考虑将.htaccess规则重命名为www.example.com/example.com/www.example.com/

我目前的重命名规则是:

RewriteEngine On
    RewriteBase /

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php

    RewriteCond %{REQUEST_URI} !^/img/favicon\.ico [NC]
    RewriteCond %{REQUEST_URI} favicon\.ico [NC]
    RewriteRule (.*) http://example.com/img/favicon.ico [R=301,L] 

    RewriteCond %{HTTP_HOST} ^example\.com [NC]
    RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

添加新规则:(更新

    #remove double domain name - put this directly after RewriteBase
    RewriteRule ^(.*)example.com/example.com(.*)$ $1example.com$2 [R=301]

我的问题:

  • 新规则不起作用。什么是不正确的?我已经使用preg_replace对它进行了测试,但是在htaccess中它没有重命名。

  • 我知道我需要删除前一个RewriteRule中的[L,R = 301],以便它可以到达最后一行。有没有更好的方法来使用[L,R = 301]所以我不会得到无限循环?

  • 最后,我知道这是一个创可贴,最好找到问题。任何想法为什么我可能会遇到这个问题?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

最后想出了重写。仍在研究为什么问题开始...

我学到的是使用REQUEST_URI,在条件

中取消匹配主机名
RewriteCond %{REQUEST_URI} (.*)/example.com(.*) [NC]
RewriteRule ^(.*) %1%2 [L,R=301]