.htaccess无法在url中隐藏文件夹


.htaccess not working to hide folders in urls

我想从我的网站url和php扩展中删除这两个文件夹:"folder1s"answers"folder2",但它对我的.htaccess文件没有生效。

http://www.example.com/folder1/folder2/are_string_beans_all_right_on_the_candida_diet.php

转换

http://www.example.com/are-string-beans-all-right-on-the-candida-diet/

这是我的.htaccess文件

DirectoryIndex index.php
AddDefaultCharset utf-8
RewriteCond %{HTTP_HOST} ^[^.]+'.[^.]+$
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteRule ^index'.php/?$ / [L,R=301,NC]
RewriteRule ^((?!folder1/folder2).*)$ folder1/folder2/$1 [NC,L]

如果使用RewriteCond ,您尝试做的事情可以很容易地完成

# Doesn't begin with folder1/folder2
RewriteCond %{REQUEST_URI} !^/folder1/folder2/
RewriteRule ^(.*)$ /folder1/folder2/$1 [L]

然而,这不会将请求http://domain.com/folder1/folder2/file重定向到http://domain.com/file。你需要一个单独的规则。

您可以使用url路由功能来实现这一点。

$route['are-string-beans-all-right-on-the-candida-diet'] = "folder1/folder2/are_string_beans_all_right_on_the_candida_diet.php";