我在服务器根
中的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
的部分,但从事物的外观来看它是空的。
我尝试阅读here和here中的[PATH_TRANSLATED] => redirect:/
,但我似乎无法找到解决此问题的方法。
服务器信息: PHP 5.4
可能导致这一切的原因以及我如何否定它,因为从事物的外观来看,唯一可行的重写是RewriteRule ^([a-z0-9_-]+)/?$ $1.php [QSA,NC,L]
。
谢谢。