1

我已经包含一个重定向 url 来将 www.site.com/machines/ 重定向到页面

  RewriteRule ([^/\.]+)/$ index.php?task=cat&p_name=$1 [L]

因为客户端想要优化 url 以按名称而不是 id 显示机器
但是在 index.php www.site.com/index.php/ 的情况下,它应该重定向到索引页面。我厌倦了在重写 url 之前使用这个条件

 RewriteCond %{REQUEST_URI} !^/index.php/$ [NC]

但这并没有完全重定向到页面 www.site.com/index.php。因为这个,一些css和图像没有正确显示所以我尝试了另一种方法

 RewriteCond %{REQUEST_URI} ^/index.php/$ [NC]
 RewriteRule ^index.php/$  index.php? [R=301,L]

在这里它像这样重定向 http://www.site.com/home/user/public_html/www.site.com/index.php 请帮助我重定向网址谢谢

4

2 回答 2

0

您可以在此处摆脱条件并简单地使用:

RewriteRule ^index\.php/$ /index.php [L,R=301]

CSS 和图像未显示的问题可能是因为您在 html 中使用了相对 URI。您需要将它们更改为绝对 URI(带有前导斜杠的)或将相对 URI 基础添加到页面标题:

<base href="/">

或任何基础应该是什么。

于 2013-04-06T16:19:20.340 回答
0

我认为您忘记在基本名称之前放置一个斜杠:

RewriteRule ^index.php/$ /index.php? [R=301,L]

但是,如果您使用此代码而不是那个代码,它看起来会更好:

RewriteCond %{REQUEST_URI} ^/index.php/$ [NC]
RewriteRule ^(.*) /index.php [QSA,R=301,L]
于 2013-04-07T15:40:42.147 回答