首页 > 解决方案 > 如何修复 PHP $_GET 以使用 SEO 友好的 URL

问题描述

我正在将 WAMP 用于设计网站,并且遇到了 SEO 友好 URL 的问题。我已验证 LoadModule rewrite_module modules/mod_rewrite.so 已启用。例如,我的 htaccess 文件有以下条目:

RewriteRule ^content-all$ content-all.php [NC,L]
RewriteRule ^content-one/([-A-Za-z0-9_]+)$ content.php?parm1=$1 [NC,L]
RewriteRule ^content-two/([-A-Za-z0-9_]+)/?([-A-Za-z0-9_]*)/?$ content-two.php?parm1=$1&parm2=$2 [NC,L]
RewriteRule ^content-three/([-A-Za-z0-9_]+)/?([-A-Za-z0-9_]+)/?([-A-Za-z0-9_]*)/?$ content-three.php?parm1=$1&parm2=$2&parm3=$3 [L]

所有 URL 重写工作。但是,当我使用 $_GET 命令准备每个文件中的参数时,我成功使用了一个参数,但使用两个和三个参数文件都不成功。我放了一个 print_r($_GET); 命令,并且在传递多个值时数组为空。这应该有效,但事实并非如此。

我什至有我的 httpd.conf

<Directory />
    AllowOverride FileInfo
    Require all denied
</Directory>


RewriteRule ^content-all$ content-all.php [NC,L]
RewriteRule ^content-one/([-A-Za-z0-9_]+)$ content.php?parm1=$1 [NC,L]
RewriteRule ^content-two/([-A-Za-z0-9_]+)/?([-A-Za-z0-9_]*)/?$ content-two.php?parm1=$1&parm2=$2 [NC,L]
RewriteRule ^content-three/([-A-Za-z0-9_]+)/?([-A-Za-z0-9_]+)/?([-A-Za-z0-9_]*)/?$ content-three.php?parm1=$1&parm2=$2&parm3=$3 [L]

我的 $_GET 数组应该有多个值,具体取决于我通过的值。

标签: phpapache

解决方案


推荐阅读