Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在不创建目录的情况下处理URL_Php_Apache_Mod Rewrite - Fatal编程技术网

Php 如何在不创建目录的情况下处理URL

Php 如何在不创建目录的情况下处理URL,php,apache,mod-rewrite,Php,Apache,Mod Rewrite,我的域名结构是domain.com/username(就像在twitter/facebook等网站上一样) 据我所知,我必须用用户名创建一个目录,并将文件放入其中,以便从该URL查看 是否有更好的方法来处理URL,而不必为每个用户创建目录,只需检索URL并找出它是哪个用户的页面&仅从主域(即domain.com索引页)加载数据库中的用户数据?是,通过将所有非真实文件的请求重写为显示请求用户数据的PHP脚本。将其放入.htaccess文件或httpd.conf中以使用Apache的mod_重写:

我的域名结构是domain.com/username(就像在twitter/facebook等网站上一样)

据我所知,我必须用用户名创建一个目录,并将文件放入其中,以便从该URL查看


是否有更好的方法来处理URL,而不必为每个用户创建目录,只需检索URL并找出它是哪个用户的页面&仅从主域(即domain.com索引页)加载数据库中的用户数据?

是,通过将所有非真实文件的请求重写为显示请求用户数据的PHP脚本。将其放入.htaccess文件或httpd.conf中以使用Apache的mod_重写:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /username.php [L]

然后username.php可以查看
$\u SERVER['REQUEST\u URI']
以查看URL,选择用户名并显示适当的内容。

是,将所有非真实文件的请求重写为显示请求用户数据的php脚本。将其放入.htaccess文件或httpd.conf中以使用Apache的mod_重写:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /username.php [L]
然后username.php可以查看
$\u SERVER['REQUEST\u URI']
以查看URL,选择用户名,并显示适当的内容。

mod\u rewrite

基本上,您的“真实”URL看起来像是
domain.com/profile.php?name=Andrew
,它将显示具有该名称的用户的所有信息。然后,您可以使用mod_rewrite并使
domain.com/andrew
成为
domain.com/profile.php?name=andrew
的“快捷方式”

刚刚测试过这个,效果很好:

profile.php-

<?php

echo '<h1>' . ucwords($_GET['name']) . '</h1>';

?>
当我访问时,我看到了我的名字,就像我应该看到的一样。

mod\u rewrite

基本上,您的“真实”URL看起来像是
domain.com/profile.php?name=Andrew
,它将显示具有该名称的用户的所有信息。然后您可以使用mod_rewrite并使
domain.com/andrew
成为
domain.com/profile.php?name=andrew
的“快捷方式”

刚刚测试过这个,效果很好:

profile.php-

<?php

echo '<h1>' . ucwords($_GET['name']) . '</h1>';

?>

当我访问时,我会看到我的名字,就像我应该看到的一样。

Updated.htaccess,这样它就不会试图重写重要内容。Updated.htaccess,这样它就不会试图重写重要内容。