如何在两个url中隐藏项目子文件夹,我尝试了很多方法,但都没有成功
以下是url的
mydomain.com/project/service.php?param=40&some/text/goes/here
和
mydomain.com/project/item.php?param=15&some/text/goes/here
这是我迄今为止尝试过的代码。
<IfModule mod_rewrite.c>
Options +FollowSymLinks -MultiViews -Indexes
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L,QSA]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}'s(.*)/index'.php [NC]
RewriteRule ^ %1 [R=301,L]
RewriteCond %{REQUEST_URI} !^/project/.*$
RewriteRule ^(.*)$ /project/$1 [L,QSA]
</IfModule>
任何帮助都将不胜感激,谢谢!
考虑到,我已经重写了您的htaccess
Options +FollowSymLinks -MultiViews -Indexes
RewriteEngine on
RewriteBase /
# hide PROJECT folder from url
RewriteCond %{THE_REQUEST} ' /project/(.*)' HTTP/ [NC]
RewriteRule . %1 [R=301,L]
# hide homepage index.php
RewriteCond %{THE_REQUEST} ' /index'.php [NC]
RewriteRule . / [R=301,L]
# check if file/folder exists in PROJECT folder (if so, internally rewrite)
RewriteCond %{DOCUMENT_ROOT}/project%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}/project%{REQUEST_URI} -d
RewriteRule ^(.*)$ project/$1 [L,QSA]
# internally rewrite everything (except existing file/folder) to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L,QSA]
这应该有效:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/project/
RewriteRule ^project/(.*)$ /$1 [r,L]
RewriteCond %{REQUEST_URI} !^/project/.*$
RewriteRule ^(.*)$ /project/$1 [L]
这将删除URL中的project
文件夹,然后以静默方式将其添加回(用户看不到它正在被读取。