我在本地计算机上安装了XAMPP。我开始设置我的MVC并注意到$ _GET将我的本地目录结构一直返回到驱动器号。但我想返回URL结构。
我试图提供所有可能的相关信息。
环境
主机 [C:\ Windows \ System32 \ drivers \ etc \ hosts]
127.0.0.1 www.getspark.com
httpd.conf [E:\ xampp \ apache \ conf \ httpd.conf]
DocumentRoot "E:/xampp/htdocs/home"
<VirtualHost *:80>
DocumentRoot /xampp/htdocs/home
ServerName getspark
</VirtualHost>
<Directory "E:/xampp/htdocs/home/private">
Order deny,allow
Deny from all
</Directory>
<Directory />
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ /index.php?url=$1 [L,QSA]
</Directory>
网络目录结构 [E:\ xampp \ htdocs \ home]
home
index.php
private
controllers
public
graphics
HTML5_Logo_512.png
首页 [E:\ xampp \ htdocs \ home \ index.php | http://www.getspark.com/]
<?php
$url = $_GET['url'];
echo $url . '<br />';
?>
<img src="/public/graphics/HTML5_Logo_512.png" />
如果我使用以下网址:
http://www.getspark.com/foobar
我得到了这个输出:
E:/xampp/htdocs/home/foobar
以及图像。
但我想要这个输出:
foobar
所有相对(和绝对)引用都能正常工作(对于图像,php文件,js文件等)。
答案 0 :(得分:0)
使用$ _SERVER ['REQUEST_URI']被认为是更好的做法,它会在域之后返回请求中的所有内容(根据apache / lighty,在重写之前) - 在您的情况下为“/ foobar”。