我已经彻底搜索了删除网址中间文件夹的方法,如下例所示:
我有什么:
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后作为root的文件夹,但/ pages /文件夹可以在我工作的网站的网址中的任何级别on(有时他们在根,有时在/ company /之后,有时在/ company / data /之后)。唯一可预测的是文件夹的名称,它始终是“/ pages”。
作为参考,这是我尝试过的方法不起作用:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteRule ^pages/(.*)$ /$1 [L,NC,R]
提前感谢能够提供帮助的任何人。
答案 0 :(得分:0)
在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]
答案 1 :(得分:0)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{THE_REQUEST} ^GET\ /pages/
RewriteRule ^pages/(.*) /company/section/content/$1 [L,R=301]
如果这不起作用,请尝试这个
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{THE_REQUEST} ^GET\ /pages/company/section/content/
RewriteRule ^pages/company/section/content/(.*) /company/section/content/$1 [L,R=301]