0

我有谷歌这个,但找不到任何东西,我自己也想不通。

我创建了一个迷你 MVC PHP Freamework 并拥有这个 .htaccess 文件:

DirectoryIndex index.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

通常我从引导程序获取 url 并将模型和控制器获取到当前 url。

但是如果我有一个新的 GET 怎么办:

if (isset($_GET['topic']))
{
 // echo  the forum topic.
}

现在网址是:http://domain.com/mvc/forum/topic?topic=this-is-the-topic-title-url

如何在 htaccess 中将其重写为http://domain.com/mvc/forum/topic/this-is-the-topic-title-url

4

2 回答 2

0

你可以...

  1. 分析您的$_GET['url']参数并$_GET在程序中动态修改您的数组,或者
  2. 使用多个重写规则:

    # Put this rewrite rule first, because it is more specific, and the
    # second rule will catch anything.
    RewriteRule ^(.+/topic)/(.+)$ index.php?url=$1&topic=$2 [QSA,L]
    RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
    
于 2013-01-29T18:36:12.683 回答
0

我解决了css文件:

# Allow any files or directories that exist to be displayed directly
RewriteCond ${REQUEST_URI} ^.+$
RewriteCond %{REQUEST_FILENAME} \.(gif|jpe?g|png|js|css|swf|php|ico|txt|pdf|xml)$ [OR]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -l
RewriteRule ^ - [L]
于 2013-01-30T19:36:28.033 回答