【问题标题】:php $_GET not working with clean urlsphp $_GET 不能使用干净的 url
【发布时间】:2015-01-15 17:19:34
【问题描述】:

我有以下 .htaccess

ErrorDocument 404 /404.php
AddDefaultCharset UTF-8
Header unset ETag
FileETag None

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+edit-rsps\.php\?server=([^\s&]+) [NC]
RewriteRule ^ edit-rsps/%1? [R=301,L]

RewriteRule ^edit-rsps/([^/]+)/?$ edit-rsps.php?server=$1 [L,QSA]

现在,当我尝试输出 $_GET['server'] 时,我得到一个空结果。我真的是 php 新手,所以任何帮助表示赞赏...

【问题讨论】:

  • 你在浏览器中输入什么网址进行测试?

标签: php .htaccess clean-urls


【解决方案1】:

尝试删除此行:

RewriteRule ^ edit-rsps/%1? [R=301,L]

编辑:

ErrorDocument 404 /404.php
AddDefaultCharset UTF-8
Header unset ETag
FileETag None

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteRule ^edit-rsps/([^/]+)/$ edit-rsps.php?server=$1 [L]

你的网址应该是这样的

/edit-rsps/server-var/

【讨论】:

  • @RichardB 请立即尝试
  • 我进行了更改,edit-rsps.php?server=10 不再重定向到 edit-rsps/10,我可以手动转到 edit-rsps/10 但它弄乱了我的页面,并且$_GET 仍然不起作用
  • 如果你想要干净的 url 试试 edit-rsps/10/ 它应该和 edit-rsps.php?server=10 一样
  • 干净的 URL 已经开始工作了。我无法使用 $_GET 来获取变量。
  • 尝试如果 edit-rsps/10/ 在我​​的答案中输出带有代码的 var,如果没有发布您的 php 代码
猜你喜欢
  • 2014-09-26
  • 2013-02-03
  • 1970-01-01
  • 1970-01-01
  • 2017-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-19
相关资源
最近更新 更多