php - 如何修复 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 数组应该有多个值,具体取决于我通过的值。
解决方案
推荐阅读
- javascript - jquery animate 在第一次点击时不起作用
- next.js - 在下一个 js 中使用 getStaticProps 未在 props 中获取 API 响应数据
- google-api - HttpError 400 在 users().messages().list 使用服务帐户调用 Gmail API 期间先决条件检查失败
- mysql - MySQL:删除同一行时发生死锁
- c++ - POCO C++ MongoDB:将 std::string 转换为 MongoDB::Document
- android - 如何在片段内使用 RecyclerView 实现无限列表
- machine-learning - sklearn 交叉有效/交叉预测
- java - 如何在运行 maven 可执行 jar 时重用我的本地依赖项?
- flutter - 运行flutter doctor后如何解决vscode中的问题?
- bash - 无法解析 bash 变量中的空间