如何将www.site.com/index.php/重定向到www.site.com/index.php?

时间:2013-04-06 15:02:57

标签: .htaccess mod-rewrite rewrite

我已添加重定向网址以将www.site.com/machines/重定向到第

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

因为客户希望优化网址以按名称而不是用于显示机器 但是对于index.php www.site.com/index.php/,它应该重定向到索引页面。 我在重写网址

之前厌倦了这个条件
 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 请帮助我重定向网址谢谢

2 个答案:

答案 0 :(得分:0)

你可以在这里摆脱这种情况,只需使用:

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

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

<base href="/">

或任何基础应该是。

答案 1 :(得分:0)

我想你忘了在基名之前放一个斜杠:

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

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

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