无法在脚本中访问$ _GET

时间:2018-06-10 08:06:10

标签: php apache mod-rewrite

我在服务器根

中的htaccess文件中有以下内容
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^([a-z0-9_-]+)/?$ $1.php [QSA,NC,L]
RewriteRule ^([a-z0-9_-]+)/([a-z0-9_-]+)/?$ $1.php?p=$2 [QSA,NC,L]
RewriteRule ^([a-z0-9_-]+)/([a-z0-9_-]+)/([a-z0-9_-]+)/?$ $1.php?p=$2&s=$3 [QSA,NC,L]
</IfModule>
ErrorDocument 404 /404.php
Options -Indexes

当我尝试访问正在处理的页面$_GET['p']中的travel.php时出现问题,该值不存在。

我使用了print_r( $_SERVER ),以下是我得到的一些结果

Array(
    [SERVER_SOFTWARE] => Apache Phusion_Passenger/4.0.10 mod_bwlimited/1.4
    [SCRIPT_FILENAME] => /home/-------/public_html/travel.php
    [REMOTE_PORT] => 43867
    [SERVER_PROTOCOL] => HTTP/1.1
    [REQUEST_METHOD] => GET
    [QUERY_STRING] => 
    [REQUEST_URI] => /travel/travel-faqs
    [SCRIPT_NAME] => /travel.php
    [PATH_INFO] => /travel-faqs
    [PATH_TRANSLATED] => redirect:/travel-faqs.php
    [PHP_SELF] => /travel.php
)

travel-faqs应该是我认为会在查询字符串中显示为[QUERY_STRING] => p=travel-faqs的部分,但从事物的外观来看它是空的。

我尝试阅读herehere中的[PATH_TRANSLATED] => redirect:/,但我似乎无法找到解决此问题的方法。

服务器信息: PHP 5.4

可能导致这一切的原因以及我如何否定它,因为从事物的外观来看,唯一可行的重写是RewriteRule ^([a-z0-9_-]+)/?$ $1.php [QSA,NC,L]

谢谢。

0 个答案:

没有答案