htaccess - 从URL中删除“index.php”并重定向并排除

时间:2014-11-26 11:44:15

标签: php apache .htaccess mod-rewrite redirect

我在这个网站上已经阅读了很多答案,但没有找到一个有效的例子。因此,我决定问我的问题。

如何从文件中重定向(index.php(.htm /.html / etc.)并排除?

例如,我有一个链接#1:" /dir1/some-text_index.php"和链接#2:/dir1/index.php。 应该为链接#1设置什么规则 - 重定向不会发生,链接#2发生重定向,即:

/dir1/some-text_index.php -> /dir1/some-text_index.php - nothing to do
/dir1/index.php -> /dir1/ - redirect

以及更多例子:

/dir1/some-text_index.php/dir2 -> /dir1/some-text_index.php/dir2 - nothing to do
/dir1/index.php/dir2 -> /dir1/dir2 - redirect
/dir1/some-text_index.php/dir2/?param=value -> /dir1/some-text_index.php/dir2/?param=value - nothing to do
/dir1/index.php/dir2/?param=value -> /dir1/dir2/?param=value - redirect

感谢所有人的关注。

1 个答案:

答案 0 :(得分:0)

您可以在根目录中使用此规则.htaccess:

RewriteEngine On

RewriteCond %{THE_REQUEST} /index\.php [NC]
RewriteRule ^(.*?)index\.php(?:/(.*))?$ /$1$2 [L,R=302,NC,NE]