1

我的 htaccess 脚本中有这个重写规则,但是每当我在 $_GET 上执行 var_dump 时,它都是空的,就像 PHP 中不读取来自 url 的值一样。

<ifModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^index.php/([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ index.php?app=$1&page=$2&category=$3 [L]
</ifModule>

网址示例:.../index.php/main/featured/1

如何解决这个问题?

谢谢!

4

1 回答 1

1

我相信这两个条件:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

不符合您的 URL 是/index.php/main/featured/1。至少它对我也不起作用。您可以index.php从 URL 和 URL 中删除部分RewriteRule,制作 .htaccess:

<ifModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ index.php?app=$1&page=$2&category=$3 [L]
</ifModule>

并导航到 URL /main/featured/1,或者如果您确实需要该index.php部分,则取消注释/删除这些条件:

#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d

并继续使用/index.php/main/featured/1URL。

于 2015-12-07T12:50:11.647 回答