Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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
如何在.htaccess中创建虚拟文件夹_.htaccess_Url_Seo - Fatal编程技术网

如何在.htaccess中创建虚拟文件夹

如何在.htaccess中创建虚拟文件夹,.htaccess,url,seo,.htaccess,Url,Seo,我得到了像mysite.com/username这样的用户名的代码 Options +FollowSymLinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ profile.php?user=$1 我的用户可以提交帖子。我的帖子文件是topic.php,它也在根目录中。如果我重写topic.php,代码会认为它是一

我得到了像mysite.com/username这样的用户名的代码

Options +FollowSymLinks

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ profile.php?user=$1
  • 我的用户可以提交帖子。我的帖子文件是topic.php,它也在根目录中。如果我重写topic.php,代码会认为它是一个用户名。 我需要一个像mysite.com/watch/topic.php这样的文件夹,但我想让它看起来像是不存在的文件夹(虚拟),但我可以通过该URL访问主题
对不起,我的英语不好。谢谢。

试试这个:

Options +FollowSymLinks
RewriteEngine On

RewriteRule ^watch/(.+)/?$ $1 [NC,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ profile.php?user=$1
它会将对“虚拟目录”(watch)中文件的所有请求重写为根文件夹中的文件。规则后面的“L”确保它将是请求的最后一次重写

如果请求的页面不在“虚拟目录”中,它将假定用户正在请求用户配置文件,因此它将把请求重写为您指定的用户配置文件

附带说明:我认为您应该将配置文件请求更改为

RewriteRule ^user/([a-z0-9-_]+)/?$ profile.php?user=$1 [NC,L]

也许现在您认为这不是必需的,但将来当您尝试实施更多重写时,这使您能够区分用户实际请求的内容。

您肯定需要有人帮助您制定问题——我不清楚您想要做什么。