尝试使用.htaccess进行隐藏重定向 - 重定向是可见的

时间:2014-06-26 21:04:40

标签: apache .htaccess mod-rewrite

我正在尝试在我的本地服务器上设置一些内容,如果我转到mydomain/docs,它会在内部重定向到mydomain/slate/build,但让用户仍在其浏览器中看到mydomain/docs& #39; s url。我有一半工作 - 当我转到mydomain/docs时,它会在/slate/build中加载正确的index.html但问题是我的网址栏:wq显示mydomain/slate/build当所需的网址是mydomain/docs

这是我执行重定向的整个.htaccess文件:

RewriteEngine on
RewriteRule ^/?docs$ /slate/build [L]

以下是我认为可能与我的apache2.conf相关的内容:

HostnameLookups Off

IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf

Include ports.conf

<Directory />
  Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
  Require all granted
  Allow from all
</Directory>

<Directory /usr/share>
    AllowOverride None
    Require all granted
</Directory>

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

AccessFileName .htaccess

<FilesMatch "^\.ht">
    Require all denied
</FilesMatch>

IncludeOptional conf-enabled/*.conf

IncludeOptional sites-enabled/*.conf

最后我的VirtualHost启用了网站:

<VirtualHost mydomain>
         DirectoryIndex index.html
         ServerAdmin postmaster@dummy-host.localhost
         DocumentRoot /correct/file/structure
         ServerName mydomain
         ServerAlias mydomain
 </VirtualHost>

1 个答案:

答案 0 :(得分:1)

  

是的 - 它是一个带有index.html的目录,这是我试图提取的文件。

由于它是一个目录,你需要用斜杠结束URI,否则mod_dir将启动将浏览器重定向到相同的URI但带有斜杠。尝试将规则更改为:

RewriteEngine on
RewriteRule ^/?docs$ /slate/build/ [L]