-2

我正在用 php 构建自己的 MVC 应用程序。index.php 将是前端控制器。在 index.php 中,我将使用 $_SERVER['QUERY_STRING'] 获取参数,所以我需要我的

.htaccess 文件将 /attr1/attr2/attr3 重定向到 index.php?attr1/attr2/attr3。

($_SERVER['PHP_SELF'] 不能正常工作)

如果我的 htaccess 文件(apache 服务器)是

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^(.*)$ index.php?$1
</IfModule>

query_string 输出 index.php 但如果我通过 localhost/something/attr1/attr2/attr3 访问 url 并且 .htaccess 是

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^(something)\/(.*)$ index.php?$2
</IfModule>

query_string 正在打印 attr1/attr2/attr3

怎么回事??

4

1 回答 1

1

我喜欢这样:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?url=$1 [NC]
</IfModule>

然后 url 将在 $_GET 数组中(第 4 行和第 5 行确保该规则在该路径中没有实际文件时适用)

于 2012-04-15T12:09:26.187 回答