Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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
Regex 使用.htaccess从url剪切文件夹,该文件夹可以位于url中的任何位置 我已经彻底搜索了删除URL中间的文件夹的方法,如下面的例子所示:_Regex_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

Regex 使用.htaccess从url剪切文件夹,该文件夹可以位于url中的任何位置 我已经彻底搜索了删除URL中间的文件夹的方法,如下面的例子所示:

Regex 使用.htaccess从url剪切文件夹,该文件夹可以位于url中的任何位置 我已经彻底搜索了删除URL中间的文件夹的方法,如下面的例子所示:,regex,apache,.htaccess,mod-rewrite,Regex,Apache,.htaccess,Mod Rewrite,我所拥有的: http://www.website.com/company/pages/section/content 我想去掉/pages/part,使其看起来像这样: http://www.website.com/company/section/content 值得注意的是,我已经使用了一点.htaccess来删除.php扩展名,所以这可能与所需的重定向冲突?下面是我用来删除.php的内容: RewriteCond %{REQUEST_FILENAME} !-f RewriteRule

我所拥有的:

http://www.website.com/company/pages/section/content
我想去掉/pages/part,使其看起来像这样:

http://www.website.com/company/section/content
值得注意的是,我已经使用了一点.htaccess来删除.php扩展名,所以这可能与所需的重定向冲突?下面是我用来删除.php的内容:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC]

到目前为止,我发现的解决方案似乎非常有效,如果您试图删除url后作为根目录的文件夹,但是/pages/文件夹可以在我工作的网站的url中处于任何级别(有时在根目录下,有时在/company/之后,有时在/company/data/之后,等等)。唯一可预测的是文件夹的名称,它将始终是“/页”

作为参考,这是我尝试过但不起作用的方法:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteRule ^pages/(.*)$ /$1 [L,NC,R]

提前感谢所有能够提供帮助的人。

在root.htaccess中尝试以下代码:

Options +FollowSymlinks -MultiViews
RewriteEngine On

RewriteRule ^(company)/((?!pages/).+)$ $1/pages/$2.php [L,NC]

RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
RewriteRule ^([^.]+)/?$ $1.php [L]

你的.htaccess在哪里?
/company
是真正的目录吗?同时在问题中显示完整的.htaccess.htaccess位于根目录()。当前htaccess:Options+FollowSymlinks-multiviewsrewriteengine On RewriteCond%{REQUEST_FILENAME}-f RewriteRule^([^\.]+)$$1.php[NC]您好,谢谢您的帮助。这样,我得到了一个错误而不是页面:找不到此服务器上找不到请求的URL/company/pages/section/content。添加了R后,页面确实正确加载,但/pages/仍在URL中。也许我应该尝试重新安装我的Apache,似乎我的问题是不应该发生的。不,在一个由其他人从头开始创建的公司网站上工作。是的,如果没有.htaccess,实际的url是/company/pages/section/content.phpIt仍然没有删除/pages/。非常感谢您的帮助,我想我会尝试以不同的方式重建网站,使其具有更合理的文件夹结构,并重新安装apache以确保那里没有问题。