1
我有一个Apache服务器上的网站,基于一个框架(Laravel 4),其配备了一个.htaccess文件来删除尾随斜线和重定向不存在的漂亮的网址文件到index.php以获得漂亮的URL。重定向子目录名的index.php文件使用mod_rewrite的
我使用的URL的第一个片段进行本地化,像mysite.com/en/about
。我也有一个本地化的资源文件的物理语言文件夹,如/en/images/hello.jpg
物理语言文件夹打破.htaccess文件的URL重定向这样:
mysite.com/en
自动重定向到文件夹根:mysite.com/en/
- 尾随斜线通过的.htaccess
- 循环删除!
因此mysite.com/en
不能用于语言索引,我使用/en/home
作为解决方法。
从股票.htaccess文件的一部分:
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule^index.php [L]
是否有可能使文件夹名称重定向到index.php
也没有硬编码他们。以便;
mysite.com/en
被重定向到index.php
mysite.com/en/images/about.jpg
带来的相关文件
好点!但是随后的斜杠被发送到index.php,混淆了解析器。嗯,也许另一个规则可用于目录名来重定向他们没有结尾的斜线...我会做一些测试... – SuperDuck
你是什么意思'然后尾随斜线被送到index.php'是什么意思?需要注意的是'的RewriteCond%{} REQUEST_FILENAME!-d'将跳过任何目录和'的RewriteCond%{} REQUEST_FILENAME!-f'将跳过被发送到任何文件'index.php' – anubhava
啊,你说得对,它会永远不会被发送没有更多的修改 - ) – SuperDuck