【发布时间】:2017-09-21 10:18:11
【问题描述】:
我最近更换了主机。旧服务器有 php 5.3,新服务器有 php 5.6。主机的这种变化是使我的网站与 php 7 兼容的一步。
但是我遇到了 htaccess 重定向的问题。
我的 htaccess 文件如下所示
DirectoryIndex index.php
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^company/([0-9]+)/?$ company.php?company_id=$1 [L]
所以当我使用 url mydomain.com/admin/company/92 访问页面时
我似乎没有获得所需的重定向 URL,即mydomain.com/admin/company.php?company_id=92
这是打印$_SERVER的一些输出
[REDIRECT_SCRIPT_URL] => /admin/company/92/
[SCRIPT_FILENAME] => /htdocs/myproj/admin/company.php
[REDIRECT_URL] => /admin/company.php/92/
[REQUEST_METHOD] => GET
[QUERY_STRING] =>
[REQUEST_URI] => /admin/company/92/
[SCRIPT_NAME] => /admin/company.php
[STATUS] => 200
[ORIG_PATH_INFO] => /92/
[ORIG_PATH_TRANSLATED] => /htdocs/myproj/admin/company.php
[PHP_SELF] => /admin/company.php
[argv] => Array
(
)
[argc] => 0
)
我在本地安装了 php 5.3,并且相同的代码在本地运行良好。我该如何解决这个问题?
【问题讨论】:
-
in
^company^将其粘贴到字符串的开头。因此,company之前的任何内容都会使其无法匹配。例如,您可以将其更改为RewriteRule /company/([0-9]+)/?$ /company.php?company_id=$1 [L] -
我尝试删除 ^ 但在 QUERY_STRING 中仍然没有得到任何内容
标签: php apache .htaccess redirect mod-rewrite