如何使用.htaccess指向与url栏上的目录不同的目录

时间:2015-05-22 13:31:02

标签: php apache .htaccess mod-rewrite directory

我试图使用.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。

2 个答案:

答案 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]