如何使用.htaccess将所有url重写为index.php

时间:2017-12-08 10:28:21

标签: php .htaccess

在一个应用程序中,我希望所有用户都从index.php开始。所以我想将所有直接网址重定向到其他网页。

当我使用以下语法时,只会重写不存在的文件,但我也想重定向现有的URL。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?path=$1 [NC,L,QSA]

1 个答案:

答案 0 :(得分:3)

RewriteCond %{REQUEST_FILENAME} !-f表示:如果此文件不存在,请应用RewriteRule。

RewriteCond %{REQUEST_FILENAME} !-d表示:如果此目录不存在,请应用RewriteRule。

使用:

RewriteEngine on
RewriteRule ^(.*)$ /index.php?path=$1 [NC,L,QSA]

修改

如果您想仅在网址尚未以/index.php开头时重定向,请使用以下额外条件:

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/index.php
RewriteRule ^(.*)$ /index.php/?path=$1 [NC,L,QSA]