url使用htaccess在public_html中搜索子目录中的文件

时间:2015-05-22 01:37:34

标签: php apache .htaccess mod-rewrite

我正在一个网站上工作,我在其中为htaccess编写代码,但我想要做的事情并没有发生。我有网址:

http://www.example.com/demo.php?id=234&title=ask%20me%20a%20question

我使用htaccess转换为以下网址:

http://www.example.com/234/ask%20me%a%question

htaccess代码:

Options +FollowSymLinks
RewriteEngine on 
RewriteRule ^([0-9]{4})/([a-z]+)/$ demo.php?url=$1&url2=$2

因此。转换问题url是在子目录中搜索相关文件而不是服务器根,即;的public_html。我想知道这个问题怎么解决。 Plz帮助我。感谢。

1 个答案:

答案 0 :(得分:1)

您的请求中的第二个参数要求包含a-z以外的字符,但您将其限制为a-z

此外,您在URI中请求234,但在第一个参数中检查4个数字。

因此,请将规则更改为以下内容:

RewriteRule ^([0-9]{3,4})/([^/]+)/?$ demo.php?url=$1&url2=$2 [L]

更改

  1. 在第一个参数中允许3或4个数字。如果您想要更灵活,可以将其更改为([0-9]+)
  2. 检查第二个参数中除/以外的所有字符。
  3. 使用/?
  4. 使尾部斜线可选
  5. 如果规则匹配,请添加L标记以停止重写(在添加其他规则时始终有效)。