我的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
如何解决这个问题?
谢谢!
答案 0 :(得分:1)
我相信这两个条件:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
由于您的网址为/index.php/main/featured/1
,因此无法满足。至少它对我来说也不起作用。您可以从index.php
和您的网址中删除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>
并导航到网址/main/featured/1
,或者如果您确实需要index.php
部分,请取消注释/删除这些条件:
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
并继续使用/index.php/main/featured/1
网址。