0

我已经在我的本地机器上设置了 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>

Web 目录结构[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 文件等)。

4

1 回答 1

0

使用 $_SERVER['REQUEST_URI'] 被认为是更好的做法,它在域之后返回请求中的所有内容(根据 apache/lighty,在重写之前) - 在您的情况下为“/foobar”。

于 2013-07-26T11:44:07.653 回答