【发布时间】:2014-05-24 09:20:00
【问题描述】:
我在 Apache 服务器上有一个基于框架 (Laravel 4) 的网站,它带有一个 .htaccess 文件,用于删除尾部斜杠并将不存在的文件重定向到 index.php 以获得漂亮的 URL。
我使用 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带来相关文件
【问题讨论】:
标签: apache .htaccess mod-rewrite laravel-4