如何使用.htaccess设置虚拟目录

如何使用.htaccess设置虚拟目录,.htaccess,.htaccess,我正在尝试使用.htaccess设置虚拟目录 我想使用这个目录作为语言指示器。例如example.com/de-de、example.com/de-en等等。但事实上,服务器上不存在这些目录,应该加载目录根目录下的index.html文件。我写了一些规则,但它们不能正常工作: RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteR

我正在尝试使用.htaccess设置虚拟目录

我想使用这个目录作为语言指示器。例如example.com/de-de、example.com/de-en等等。但事实上,服务器上不存在这些目录,应该加载目录根目录下的index.html文件。我写了一些规则,但它们不能正常工作:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]

像example.com/de-de这样的URL可以工作,但example.com/de-de/不能。当我打开example.com/de-de/时,它尝试从/de de/子目录加载资源,例如de de/js/jquery.js而不是/js/jquery.js。我的规则怎么了?是否有办法强制使用尾随斜杠,这样用户将从example.com/de-de重定向到example.com/de-de/?

Define不起作用。您是否收到错误500内部服务器错误、403禁止错误或404未找到错误?它是否加载/pretty-unicorns.php?它是否加载了正确的页面,但参数错误?当打开example.com/de-de/时,站点尝试从de-de目录加载资源,例如de-de/js/jquery.js而不是/js/jquery.js。但是example.com/de-de起作用,那么你的规则就没有问题了。你的网站中只有相对的URL。看见如果该问题回答了您的问题,请使用问题下方的“标志”链接将此问题标记为该问题的副本。是的,您是对的!剩下的一个问题是:如何在末尾强制使用尾随斜杠?我尝试在RewriteRule之前添加RewriteRule ^.*[^/]$http://%{http_HOST}/$1$2/[R=301]/index.html[L],但随后我得到了一个500错误。乍一看,在url后面强制使用斜杠并不是一种不合理的方式。事实上,这似乎和我的想法完全一样。再次:如果你对代码有问题,1张贴代码,2张贴你得到的错误,3张贴你期望发生的事情。内部服务器错误会在Apache错误日志中留下一些消息。谷歌搜索这条消息。