【问题标题】:Redirect user to a directory using mod_rewrite - Simple question使用 mod_rewrite 将用户重定向到目录 - 简单问题
【发布时间】:2011-07-08 14:28:44
【问题描述】:

如果用户访问此网址,我会尝试这样做:

http://www.abc.com/

它会将他重定向到

http://www.abc.com/minisite/

或者,如果他要去 tihs 网址:

http://www.abc.com/dir/something.php

它会将他重定向到:

http://www.abc.com/minisite/dir/something.php

我正在尝试在 Mod_Rewrite 中执行此操作...这是我目前所写的内容:

RewriteRule ^$ /minisite/$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /minisite/$1 [L,QSA]

它正在工作,但问题是如果我转到一个不存在的页面,它会执行 500 而不是 404..

关于如何解决这个问题和/或改进我的规则有什么想法吗?

感谢和抱歉英语(如果你能编辑这个问题,这样语法会更正确,更容易理解,谢谢)。

【问题讨论】:

  • 除了docroot中的.htaccess之外,minisite目录下还有.htaccess吗?
  • 另外,如果你在替换中设置查询字符串变量(即你有一个问号),你只需要 [QSA] 标志。

标签: regex .htaccess mod-rewrite apache2


【解决方案1】:

你需要的很简单

RewriteCond %{REQUEST_URI} !minisite
RewriteRule (.*) minisite/$1 [L]  

这会将传入的任何内容(格式良好的迷你站点 URL 除外)映射到迷你站点目录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-16
    相关资源
    最近更新 更多