我试图使用.htaccess指向我网站用户的模板目录。
登录后用户所在的目录是mysite.com/lu/user1/而我要加载的内容是mysite.com/lu/default /
我想要实现的是从默认模板目录加载内容,以便我可以在必要时修改页面,它将反映在所有用户帐户页面上。
整个事情就是说:当用户在mysite.com/lu/user1/时,将mysite.com/lu/default/中的内容提供给用户,而不显示mysite.com/lu/default/网址栏。如果用户在mysite.com/lu/user1/settings/或mysite.com/lu/user1/settings/?rw=yyy&uui=uuu,请将服务目录设为mysite.com/lu/default/settings/或者mysite.com/lu/default/settings/?rw=yyy&uui=uuu
我也不希望用户直接访问模板目录,例如mysite.com/lu/default /
此代码发布给我,但我不知道htaccess语法
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/(index|excluded1|excluded2)\.php [NC]
RewriteRule ^((?!u/).+)$ u/$1 [L,NC]
感谢你的tym。
答案 0 :(得分:1)
您可以在RewriteEngine On
RewriteBase /lu/
# block direct access to /lu/default
RewriteCond %{THE_REQUEST} /lu/default [NC]
RewriteRule ^ - [F]
RewriteRule ^([A-Z0-9]{6})/?$ profile.php?cod=$1 [L,QSA]
# route every user/* to default/*
RewriteRule ^\w+/(.*)$ default/$1 [L,NC]
目录中使用此.htaccess:
{{1}}
答案 1 :(得分:0)
您应该只能重写到default
目录。你可以尝试这个规则。
RewriteEngine On
RewriteBase /
#redirect to the home page if they request direct default directory
RewriteCond %{THE_REQUEST} {A-Z}{3,}\ /lu/default/?([^&\ ]*)
RewriteRule ^ / [R=301,L]
#internally rewrite to the default directory QSA flag will send any query string attached.
RewriteRule ^lu/(?!default)([^/]+)/?(.*?)/?$ /lu/default/$1/$2 [L,QSA]