【问题标题】:Laravel .htaccess mod_rewrite rules on IIS6 with IIRF带有 IIRF 的 IIS6 上的 Laravel .htaccess mod_rewrite 规则
【发布时间】:2014-02-03 14:31:52
【问题描述】:

谁能帮我获取 Laravel php 框架默认的 .htaccess mod_rewrite 文件,并使用 IIRF isapi 插件为 IIS6 转换?

Laravel 默认的 .htaccess

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes...
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

IIRF 似乎不喜欢简单的“^ index.php”部分,而且我尝试过的所有其他方法都以某种方式失败。

【问题讨论】:

  • 你试过RewriteRule ^.*$ index.php [L] 吗?
  • 感谢您的帮助。事实证明,即使只是添加一个斜线,“RewriteRule ^ /index.php [L]”也必须在复制粘贴中丢失了 [L],这就是为什么我之前无法让它工作的原因。现在唯一仍然存在的问题是尾部斜杠部分。适用于 mysite.com/login/ 之类的 url,但在访问 mysite.com 时会提供重定向循环。
  • @JustinIurman 你删除了答案吗?没时间测试。

标签: .htaccess laravel iis-6 iirf


【解决方案1】:

根据您的解释和评论,这应该可以解决您的问题:

RewriteEngine On

# Redirect Trailing Slashes...
RewriteRule ^/?(.+)/$ /$1 [R=301,L]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*$ /index.php [L]

【讨论】:

  • 非常感谢您的耐心等待。这似乎非常接近,但不是最后一个斜杠,而是删除了 url 中的第一个斜杠。所以“hostname/login/”变成了“hostnamelogin/”。我尝试了与原版不同的组合,但没有运气。
  • 这真的很奇怪。试试我编辑的答案。如果这个不起作用,那我不知道
猜你喜欢
  • 2012-06-27
  • 2016-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-22
  • 1970-01-01
相关资源
最近更新 更多