【发布时间】:2011-10-19 01:47:54
【问题描述】:
我正在尝试获取类似于 $_SERVER["PATH_INFO"] 的内容,但奇怪的服务器问题阻止了我使用它...
在我的应用程序中,链接看起来像
www.domain.com/folder/file/variable
www.domain.com/folder/file
www.domain.com/file/variable or
www.domain.com/file/
使用 .htaccess,我试图访问正确的页面,而不是重定向到 index.php 或类似的页面。
到目前为止,我有这个,但它不起作用:)
RewriteRule ^(.+)$ /$1.php # page only
RewriteRule ^(.+)/(.+)$ /$1.php?x=$2 # page + variable
RewriteRule ^(.+)/(.+)$ /$1/$2.php # folder / page
RewriteRule ^(.+)/(.+)/(.+)$ /$1/$2.php?x=$3 # folder / page + variable
我确定我需要使用 RewriteCond %{REQUEST_FILENAME} -f 来检查请求是文件名还是目录...但我无法使其工作...
变量可以包含所有奇怪的字符 - 这就是我与点匹配的原因...也许我应该尝试仅使用 az 匹配文件/文件夹名称(因为我认为它们不会包含除 az、_ 或- )。
非常感谢任何帮助,因为现在已经痛苦了将近两天了 :)
【问题讨论】:
-
1) 由于您使用的模式首先以较长的模式开头,因为
^(.+)$将匹配/file/以及/file/variable以及/folder/file/variable; 2) 使用([^/]+)而不是^(.+)$——这将帮助你#1
标签: file .htaccess variables directory