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 使用mod_重写并删除子目录重写url_Php_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

Php 使用mod_重写并删除子目录重写url

Php 使用mod_重写并删除子目录重写url,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我目前正在建立一个网站,它还没有上线,我使用的是wamp服务器2.4。我需要删除子目录,以便不泄露我的目录结构,我有一个测试网站与以下文件夹:包括和子目录 要访问的链接在sub中,因此如果用户单击指向sub/link.php的链接,url将显示localhost/sub/link.php..我希望它显示localhost/test/link/而不显示sub。到目前为止,我已经用谷歌搜索了Apache中的mod_rewrite,了解了它,但仍然无法删除子目录。我所做的就是删除文件扩展名.php 我

我目前正在建立一个网站,它还没有上线,我使用的是wamp服务器2.4。我需要删除子目录,以便不泄露我的目录结构,我有一个测试网站与以下文件夹:包括和子目录

要访问的链接在sub中,因此如果用户单击指向sub/link.php的链接,url将显示localhost/sub/link.php..我希望它显示localhost/test/link/而不显示sub。到目前为止,我已经用谷歌搜索了Apache中的mod_rewrite,了解了它,但仍然无法删除子目录。我所做的就是删除文件扩展名.php

我在这里搜索了Stack Overflow,但答案没有帮助,可能是因为他们使用在线托管网站。php没有变量,它是一个简单的php文件,可以回显内容,但不使用任何GET/POST变量

这是html代码,我特意在“http”中写了一个“t”…虽然在代码中是两个

链接

看看这个网站,它托管在wordpress上,你访问的每个链接都没有任何子目录,只是在url后面有一个斜杠,有可能在apache上实现吗

在你的.htaccess中试试这个

它将重写URL:

http://localhost/test/sub/link.php 到http://localhost/test/link.php


http://localhost/test/sub/another.php 到http://localhost/test/another.php

添加重新写入规则您迄今为止所做的工作可能重复为什么您会担心公布目录的结构?你想在这里阻止什么?首先,我想让url更方便用户。它不起作用,它仍然显示完整的url,我在这里做错了什么吗?我尝试先将其保存在根目录中,然后再保存在子文件夹目录中,但均无效:我想你误解了这个问题,“test”是根目录,所以它应该从变为Nope,仍然不工作。我也在url栏中输入了它,它说找不到404。我想重写url。。html代码是'localhost/test/sub/link.php>link',但不是,它仍然没有删除子目录hi,@Betty,您可以尝试更新的答案。我已经在我的机器上测试了它的工作:
RewriteEngine On
RewriteRule ^sub/(.*)$ /$1 [L,R=301]
RewriteEngine On 
RewriteCond %{REQUEST_URI} !^/test/sub/
RewriteRule ^test/(.*)$ /test/sub/$1 [QSA,L]