我有以下htaccess文件。
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.domain_name\.com$ [NC]
RewriteRule (.*) http://domain_name.com/ [R=301,L]
RewriteCond %{HTTP_HOST} !^domain_name\.com$
RewriteCond %{REQUEST_URI} !^/retailers/
RewriteRule (.*) /retailers/$1 [L]
当我进入
问题是 当我输入sub.domain.com/admin [admin是/ www / retailers / admin中的文件夹]时,它会将url更改为sub.domain_name.com/retailers/admin。它应该如何在地址栏中显示sub.domain_name.com/admin。
我不知道如何实现这个目标
答案 0 :(得分:2)
这种情况正在发生,因为admin
是目录而mod_dir
正在强制使用尾部斜杠。你可以像这样使用.htaccess:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(domain_name\.com)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
# force a trailing slash for directories
RewriteCond %{HTTP_HOST} !^domain_name\.com$ [NC]
RewriteCond %{DOCUMENT_ROOT}/retailers/$1 -d
RewriteRule ^(.*?[^/])$ %{REQUEST_URI}/ [L,R=302]
RewriteCond %{HTTP_HOST} !^domain_name\.com$ [NC]
RewriteRule ^((?!retailers/).*)$ retailers/$1 [L,NC]