htaccess重写强制index.php

时间:2011-11-25 02:25:28

标签: .htaccess url mod-rewrite

我有以这种格式的链接:http://www.EXAMPLE.com/index.php?page=pageid 它们也可在以下网址获得:http://www.EXAMPLE.com/?page=pageid

如何重定向没有index.php文件名的文件来使用url的index.php部分?

我的htaccess文件中有其他重定向规则,它们工作正常,我只是不知道如何强制index.php部分并包含查询字符串。

1 个答案:

答案 0 :(得分:4)

将以下规则放在网站根目录中的.htaccess文件中

RewriteEngine On
RewriteBase /

#only for the root directory
RewriteCond %{REQUEST_URI} ^/$
#if the uri is not already index.php
RewriteCond %{REQUEST_URI} !^/index.php [NC]
RewriteRule ^$ /index.php    [R=301,L]

如果仍然与其他规则发生冲突,您可以通过在上面的重写规则之前添加followind条件,将此规则进一步限制为只有page=查询字符串参数的请求

# to limit further to only the requests with a page= param
RewriteCond %{QUERY_STRING} ^([^&]+&)*page=.*$ [NC]