【问题标题】:htaccess mod_rewrite - reroute all urls to index except /adminhtaccess mod_rewrite - 将所有 url 重新路由到索引,除了 /admin
【发布时间】:2013-03-03 23:07:50
【问题描述】:

我正在一个 htaccess 文件中设置一小组重写规则,我希望每个 url 都转到 index.php 文件,但我想重定向到 admin.php 的 /admin 除外。不幸的是,对 mod_rewrite 或 regexp 不太熟悉。

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^admin$ admin.php [L]
    RewriteRule . /index.php [L]
</IfModule>

这给了我一个内部服务器错误(不是说 500)。删除或取消注释管理员重写使其工作。

【问题讨论】:

  • 您可以访问服务器错误日志吗?
  • 它在本地运行。我应该在哪里查找日志? (MAMP Pro OSX)

标签: .htaccess url mod-rewrite rewrite


【解决方案1】:

需要对index.php重写规则应用条件,否则会导致重定向循环。 RewriteCond 仅应用于紧随其后的RewriteRule,因此将所有内容路由到索引的规则没有条件。尝试重新排列线条:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^admin$ admin.php [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
</IfModule>

【讨论】:

    猜你喜欢
    • 2016-04-25
    • 2021-11-06
    • 2016-07-29
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 1970-01-01
    • 2021-06-25
    相关资源
    最近更新 更多