如何使用htacces删除尾部斜杠

时间:2015-10-22 15:07:11

标签: php .htaccess

我们遇到了问题。家伙。也许有人处理过这样的事情。任何帮助将不胜感激。

我们决定建立一个新网站。我们制作的每个网页都存储在服务器上:“example.php” 但是,我们不希望我们的每个网址都像:“company.com/example.php”,所以 我们将此代码添加到.htcaccess,标记为“#cut url”:

RewriteEngine on
# cut url
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
# remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

完美无缺。删除“.php”部分。

但是有一个问题。我们网站的上一版本使用了wordpress,因此可以在互联网上找到并通向我们公司网站的每一个链接,包括过去的博客条目,在每个URL的末尾都有一个斜杠,即“company.com/stuff/ “,我们复制了新博客的内容,所以每个条目看起来像这个”company.com/stuff.php“,通过使用我上面指定的代码,我们设法删除了”.php“部分。因此,每当有人访问博客条目时,他都会看到“company.com/stuff”,这就是问题所在。

我们想在.htcaccess中添加一些内容,以帮助我们重定向旧的网址,包括谷歌索引的网址。 因此,如果有人在最​​后发现任何带有斜杠的旧链接,并且点击它将自动重定向到我们新网站上具有相同内容的博客条目。所以,假设他点击“company.com/stuff/”并自动将他带到“company.com/stuff”(实际上是“company.com/stuff.php”,但前面提到的代码删除了“php”部分。 )

我们不确定该怎么做。我们一直试图找到解决方案,有些人提出了一段代码,删除了斜杠,但它不起作用,我把它放在这里,它标记为“删除尾随斜杠”。

请,也许有人有解决方案。 我们有独立的php,没有框架。

1 个答案:

答案 0 :(得分:0)

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

您可能也希望在其中添加R = 301标志,但我不确定 - 这取决于您。